天天看点

git分支开发使用

背景

git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:

去自己的工作分支

$ git checkout work

工作

....

提交工作分支的修改

$ git commit -a

回到主分支

$ git checkout master

获取远程最新的修改,此时不会产生冲突

$ git pull

回到工作分支

$ git checkout work

用rebase合并主干的修改,如果有冲突在此时解决

$ git rebase master

$ git checkout master

合并工作分支的修改,此时不会产生冲突。

$ git merge work

提交到远程主干

$ git push

这样做的好处是,远程主干上的历史永远是线性的。每个人在本地分支解决冲突,不会在主干上产生冲突

变基过程中常用的几个命令

例如我们需要将iss33变基到master分支上,使用命令

git checkout iss33;git rebase master

,此时会进入rebase模式,如果iss33和master分支中的提交有冲突,需要手动合并文件解决,解决冲突后使用

git add

表示冲突已经解决,

git rebase --continue

表示继续下一个冲突,

git rebase --skip

表示跳过当前冲突,

git rebase --abort

表示退出rebase模式,回到运行

git rebase master

命令之前的状态。