这篇博客将主要介绍团队中如何使用Git分支模式进行开发。
问题背景
先介绍一下分支:分支分为远程分支和本地分支。
创建版本库时,默认会有一个master远程分支,我们克隆到本地,于是建立了本地master分支。默认情况下,一个远程分支,一个本地分支,在本地写代码,写完之后更新到远程分支。我们称这种模式为单分支模式。或者说,带commit的FTP模式。一个人用是不会出问题的,但是多个人就会出问题了。
冲突问题
因为在正常的git流程中,每次更新代码前都应当pull,更新本地代码,pull就会产生冲突。FTP模式的冲突尤其多。分支模式的主要目标就是减少冲突。
怎么做
我们的做法是这样的,建立多个远程分支,remote1,remote2。然后每个开发人员都有一个属于自己的远程分支,别人不会动你的远程分支,每次提交代码都提交到自己的远程分支。这样在每个人的角度便不会产生conflict。其实,多人协作开发,冲突是一个不可避免的问题。那么,一天工作结束的时候,我们再去解决冲突。remote1 pull remote2,在remote1中解决冲突,然后再push到master分支,第二天上班的时候,每个人再从master中pull最新的代码到本地。
总的来说,分支模式,有利于对冲突的把控,不会影响到每一个人自己的代码。
涉及到的指令
指令 | 作用 |
---|---|
git branch -a | 查看所有分支,本地,远程 |
git branch -b [分支名称] | 创建并切换到本地分支 |
git push origin [主机名/分支名] | 推送到远程分支,如果不存在则创建 |
git branch –set-upstream [本地分支名] [远程主机名/分支名] | 给本地分支和远程分支建立追踪 |
git branch -vv | 可用于查看本地分支和远程分支之间的追踪信息 |
git fetch -b | 获取远程仓库,并删除没有建立追踪信息的本地分支.注意:如果远程分支已经删掉了b,b关联的本地分支不会被删掉 |