开发工具GitAndroid技术知识

开发工具之Git工具--版本控制神器(二)

2016-11-15  本文已影响304人  郭少_

上篇文章我们学习了Git工具的简单介绍,Git仓库的创建以及一部分Git指令的知识。接下来我们继续学习Git相关概念以及指令。上篇文章见:开发工具之Git工具--版本控制神器(一)
这一部分的内容接上一部分的Git指令,为了版式优雅,我就重新以大写数字(一、二)为标题命名了。

一、远程仓库

之所以使用Git远程仓库,一是我们可以完成协作开发,二是我们可以备份我们的代码、分享,开源我们的项目。Git远程服务器有很多种,我们以最常用的Git为例,介绍一下远程仓库。
1. 身份认证
本地Git仓库与远程Git仓库进行通信的时候,往往需要SSH身份验证。

ssh_key.png
查看根目录的.ssh文件夹下是否已经存在 id_rsa和idrsa.pub文件。如果没有,可以使用如下命令成成这两个文件:

ssh-keygen -t rsa -C "email(github上的注册邮箱)"
然后一直回车即可。
id_rsa和id_rsa.pub就是SSH Key的秘钥对。id_rsa是私钥用于验证自己的身份,而id_rsa.pub是公钥用在Git远程服务器上表明自己的身份。
添加SSH Key
以GitHub为例子(本文均以GitHub为例子),如下图:

SSH KEY.png

2. 同步协作
本地Git仓库与远程Git仓库同步,远程仓库作为本地仓库的备份,或与其他开发者协同工作。
其实同步这些操作指令在你新创建一个仓库后,都会有提示,如下图所示:

createNewRep.png

连接与推送代码
git remote add origin 自己的gitHub仓库地址
git push -u origin master
**note: **
origin代表远程仓库,不用修改它。第一条指令是建立连接,第二条指令是推送代码。-u参数使得不但推送了master分支,而且还将本地master分支与远程的master分支关联起来(后续再推送到master分支的时候直接使用“git push“命令语句即可,不用添加-u参数)。

git_push_remote.png

更新代码
通过git pull指令即可拉取最新代码的更新,如果拉取的更新代码与本地没有冲突,则会自动合并。

Clone远程仓库:
这一部分已经在文章开始创建仓库部分提到过,不再重复,指令:
git clone 仓库地址

二、分支管理

试想这么一种场景,应用在迭代更新过程中,肯定是要修复bug和增添新功能的。在增添新功能的开发过程中,我们肯定不能直接使用当前应用主分支master,因为我们使用Git工具目的就是为了完成协作开发,你去使用master分支,那别人就只能去打游戏去了。所以我们提出分支的概念,从主分支中拉取一个copy,进行新功能的开发,开发完毕后,我们只需合并分支即可。

使用git checkout -b 分支名称 可以创建一个新的分支
这个命令等价于:1.
git branch 分支名称
2. git checkout 分支名称
note:前面提到过checkout指令,当checkout后面跟分支名称才代表创建一个新的分支,如果跟文件名,代表恢复操作。-b参数指的是自动切换到新创建的分支上。

使用 git branch 指令可以查看现有的分支。
当前所处的分支名称前面用*标记。

使用 git checkout 分支名称可以切换到指定分支上。
note:当前分支若存在未提交的修改,则Git无法切换分支。可通过git stash指令将修改暂存并恢复到原始版本,然后切换分支。

使用git merge 分支名称可将某分支merge到mater分支上来。
在合并分支的过程中有时会出现代码冲突的问题,这时Git会把冲突的代码都显示在代码中,需要我们自己取舍。
合并分区其实还有一个Rebase指令:git rebase 分支名称;二者的区别在于,后者会合并时间线。可根据实际需要选择哪种合并方式。

使用git branch -d 分支名称即可产出一个分支。
注意,当一个分支未合并时Git会提醒你,你可以使用参数“-D”强制删除一个分支。

到这里,你也许会有疑问,Git这么多分支操作,会不会产生很多垃圾文件?其实,Git与SVN不同,Git创建的只是一个指向不同文件或者分支的指针而已,Git实际上只是使用了很少的内存空间来记录这一切。

使用git remote指令查看远程分支
使用git remote -v指令查看远程分支的详细信息

使用git push origin 分支名称推送分支到远程

git_remote_branch.png

三、Tag

Tag可以认为是一个快照,一个记录点,用于记录某个commit点或分支的历史快照。Tag通常打在Master分支上。以保证代码的准确性。这一部分的内容比较简单,下面简单介绍一下指令。

git tag tag名称
这样创建的Tag,默认会记录在最后的提交上。你也可以通过commit id指定要创建Tag的地方,代码如下:
git tag Tag的名字 id(一般7位)
你也可以创建带注释的Tag,如:
git tag -a Tag名称 -m "注释" id;其中-a参数制定了Tag名称 ,-m参数指定了注释。

使用git tag指令可以查看创建过的Tag
使用git show tag名称查看Tag的详细信息

使用git tag -d tag名称删除tag,类似于删除分支。

使用git push origin tag名称推送tag到远程
或者,你可以使用git push origin --tags推送本地所有的tag

四、Git图解

希望各位能好好掌握这些区域的操作关系。

git图解.png

五、结语

到此为止,Git工具全部写完了。这一部分内容我查了很多资料,包括博客和书。Git作为一种工具,最好的掌握方式当然是好好使用它。这两篇文章算是做一个笔记吧,也方便日后查看、复习。各位如果有疑问留言即可,我们共同讨论。
前半部分请看这里:开发工具之Git工具--版本控制神器(一)
最后,转载请注明出处http://www.jianshu.com/p/5a4f51932308 ,谢谢。

上一篇下一篇

猜你喜欢

热点阅读