git分工协作

一张很经典的图:

git

当多人协同工作时,一般有一个master分支,用于将小伙伴代码合并到一起后的dev分支,基于dev分支创建的每位小伙伴各自分支如myBranch。

  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • myBranch分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

开发提交

当你刚进入项目组,需要基于dev分支进行开发时,就要:(1)克隆代码 (2)基于dev分支,创建属于自己的分支 (3)基于自己分支开发,再提交到远端自己分支上

git clone ...

git checkout dev

git checkout -b myBranch//创建并切换到自己分支
--
进行开发ing...要提交代码了

git add .

gst 

gc -m'首页ok'

gst

git push origin myBranch(缩写gp)

合并代码

小伙伴每天开发前,先git pull一下dev分支,保证基于最新的dev分支上进行编辑。

然并卵,如果小伙伴正开发时,发现dev分支上有新的提交,显示自己本地dev分支版本已落后。

解决:基于myBranch,将工作区改动与dev改动进行合并。具体方法见下面两种

方法一

先将自己工作区代码改动放到本地仓库,再将远端dev最新代码拉取到本地仓库,然后将dev合并到myBranch里。

若有冲突请在工作区解决好冲突。最后,将修改后的文件提交

//先将自己工作区代码改动放到本地仓

ga .

gst

gc -m'修改了某文件'

gst

//更新代码

git checkout dev

git pull origin dev(简写git pull)

//将dev合并到自己分支里

git checkout myBranch

git merge dev

gst

//若有冲突,修改冲突,再提交所修改的文件

git add 修改的文件

gst 

gc -m'手动合并'

gst

gp

点评:对工作区来说,相当于先修改代码,再更新代码,即在旧的代码上进行编辑。容易产生冲突

方法二

先将工作区改动压入临时栈中,此时工作区干净,再更新工作区,然后将dev合并到myBranch中。

最后将之前的工作区改动弹出来,此时若有冲突,先解决冲突,再将修改的文件提交

git stash//将工作区改动压入栈中

//更新代码
git checkout dev

git pull

//将dev合并到myBranch里
git checkout myBranch

git merge dev

//弹出之前工作区改动

git stash pop

//若有冲突,解决冲突,并提交修改的文件

ga 某文件

gst

gc -m'合并代码'

gst

gp

点评:相当于先更新代码,再编辑,冲突少。且git stash pop查看有冲突的地方很方便


最后,由负责人将小伙伴分支上的代码,合并到dev,大功告成!

猜你喜欢

转载自blog.csdn.net/cjg214/article/details/80060413