git 生成秘钥


一、MacOS/Linux用户

1.生成密钥(-C 后建议填写自己的邮箱,便于识别公钥是谁的。建议创建时不要添加密码,连敲三次enter键即可)
	
	$ ssh-keygen -t rsa -C "[email protected]"


2.从 ~/xxx/.ssh 获取生成的公钥 id_rsa.pub,提交给管理员,建议提交时直接命名为:自己的名字.pub(如:lovelywolf.pub 或 lovelywolf-mbp.pub)。
	另外,对于同一个用户,需要在自己多台PC上使用GIT,是可以将某台电脑上生成的私钥导入其他电脑相同位置使用的,这样避免为同一个人配置多个证书,增加管理成本。


3.配置客户端用户名和邮件(便于服务器识别,名字和邮箱设置为自己的)
	
	$ git config --global user.name  lovelywolf
	$ git config --global user.email  [email protected]

4.克隆代码
	$ git clone [email protected]:/data/qinjiakonggu 常用本地指令
	
	$ git status
	
	$ git add .
	$ git commit -m "comment for each commit"
	
	$ git pull
	$ git push origin master

6.推送到远程仓库指定分支
	
	$ git push 10.254.33.3 local_branch_name:remote_branch_name




二、GUI客户端
GIT客户端众多,例如:
a) 
	SourceTree(https://www.sourcetreeapp.com/)
b) Git for Windows(https://git-for-windows.github.io/)
c) TortoiseGit(https://tortoisegit.org/)当然,也可以直接玩命令行


1.使用SourceTree(https://www.sourcetreeapp.com/),有MacOS/Windows版可供选择
	
	a)安装
	
	b)注册id并登陆
	
	c)主界面:新仓库 -> 从URL克隆 -> 源URL:
	d)用户名和邮件,填写在偏好设置中


2.Windows用户需安装Git for Windows,进入git bash, 
	命令:ssh-keygen -t rsa -C "[email protected]" 生成密钥。
	然后id_rsa和id_rsa.pub要放到C:\Documents and Settings\Administrator\.ssh\ 目录下


3.SourceTree 安装文件位于33.1/software/配置管理/git 目录


4.如安装TortoiseGit,建议在安装配置时选择 openssh 作为ssh组件




三、GIT使用原则

	1.GIT的出生就没有考虑在一个GIT数据库中设置分支目录访问权限的设计,因此我们也不想折腾山寨的权限控制方法。

	2.各项目的子系统项目建议单独创建GIT数据库(如:Android一个,iOS一个,Web一个,Doc一个),分开进行轻量化管理,对于单个GIT数据库可以设置读写权限和只读权限。

	3.各开发团队如果有开新项目的需求,只需提交给配置管理员(也就是我:周平)项目名(英文的),同时告诉配置管理员访问者名字(前提是之前那个人已经提交ssh公钥给管理员过,没有则需该用户提交公钥)。

	4.GIT管理不再依赖于用户密码概念。每一个用户都需在本机生成ssh钥匙对,本地保存密钥,公钥提交到服务器,服务器便唯一识别GIT访问者身份。要妥善保存本地密钥,如果更换电脑或无法找回本地密钥,需要重新生成新的密钥,并提交对应的公钥给配置管理员。




四、项目经理创建数据库
步骤:

	1.项目经理与配置管理员沟通,完成GIT数据库权限设置。

	2.项目经理在本机创建GIT数据库,并维护代码。

	3.项目经理PUSH数据库到服务器。

	4.项目成员在本机操作从服务器克隆数据库,开始开发工作。


		$ cd ~/githome
$ mkdir foobar
$ cd foobar

		$ git init
$ git svn clone http://123.123.123.123/svn/sources/application/public

		$ git push origin master
$ touch hello.txt

		$ git add hello.txt

		$ git commit -am 'first commit'

		$ git remote add origin [email protected]:lovelywolf.git

		$ git push origin master




五、使用GIT分支管理开发流程
GIT具有强大而灵活的分支管理方案,我们推荐采用分支进行开发管理。规则:

	1.让master分支总是与最新发布的版本保持一致

	2.创建dev分支,日常新版本开发工作都在dev分支进行

	3.正在dev分支开发新版本时,如发现线上已发布版本存在严重缺陷需要立即发布补丁包修复时,从master分支(或者tag)创建出dev_v0.1.1_bugfix分支进行修复代码开发,完成后将dev_v0.1.1_bugfix代码合并入master和dev分支,再创建新的tag标记版本。
最后如果需要也可以删除dev_v0.1.1_bugfix分支

	4.新版本开发完成,将dev分支代码合并入master。同时,从master分支创建出新版本对应的tag

	5.随后又在dev分支进行往复的新版本的持续性开发工作

	6.更多的特性开发,则可以根据具体需求选择如何在master/dev等基本分支上创建子分支进行开发




六、使用GTI分支管理指令举例
背景:假设master分支存在一个名为README.md的空文件。

1.创建dev分支
	$ git branch dev

2.切换dev分支
	$ git checkout dev

3.查看所有分支(前面有星号的表示当前所在分支,现在应该是dev分支前有星号)
	$ git branch

4.暂存需要提交的文件(eg:在dev分支修改文件:README.md中插入一行Hello World,提交到dev分支)
	$ git add README.md

5.提交文件到当前所在分支(当前在dev分支)
	$ git commit -m 'add Hello World at first line'

6.合并分支
a) 切换到需要合并到的目标分支,例如需要将dev分支的修改合并到master分支,需先切换回master分支
	$ git checkout master
	此时查看README.md,该文件是空文件,因为是在dev分支修改的内容

b) 合并dev分支的修改到master分支
	$ git merge dev
	此时查看README.md,该文件内容与dev分支一样

7.删除分支(例如删除dev分支。注:此处只是演示,按我们的管理策略,dev分支永远存在)
	$ git branch -d dev
	此时使用git branch查看,只有master分支

8.创建tag(需切换到待创建tag的分支,如现在已在master分支,需在master分支最新commit上创建tag):
	$ git tag lovelywolf_v1.0

9.查看所有tag
	$ git tag

10.追溯代码创建tag
假如忘记tag,又有几次提交记录了,需要在之前某个提交记录上建立tag

a) 找到历史提交的commit id(通过git log命令,需附上一些参数)
	$ git log --pretty=oneline --abbrev-commit

	举例(注:前面一截为commit id,后面为提交说明):
	bff59fa third commit
	ede4ba1 second commit
	4c0d95f commit at dev branch
	7d984a4 create repo

b) 在指定历史提交上打tag
	$ git tag lovelywolf_v2.0 ede4ba1

	此时用git tag命令查看,会看到两条tag记录
	lovelywolf_v1.0
	lovelywolf_v2.0

11.推送标签(标签都是创建在本地,需推送到远端)
a) 推送指定标签到远端
	$ git push origin 

b) 推送所有未推送到远程的本地标签
	$ git push origin --tags

12.删除标签
a) 先删除本地标签
	$ git tag -d 

b) 删除远程标签
	$ git push origin :refs/tags/

 

你可能感兴趣的:(Git,可爱的狼)