Camila Waz 发布于
2019-11-28 17:41:41

Git开发流程

最近在公司换了一个新部门,对代码的提交流程比较混乱,这里整理一下比较规范的Git开发流程。
1、新建本地主分支
首先假设远程代码仓库的origin/dev分支是我们的开发分支。
$ git checkout -b dev origin/dev
第一步先新建一个本地的主分支,并和远程的origin/dev分支关联起来。后面会一直将这个分支保持和origin/dev代码同步。
2、切换到本地开发分支
$ git checkout -b bug_001
现在假设我有个新的bug需要修改,那么新建并切换到bug分支bug_001。在这个分支上进行bug的修复,完成之后执行git add 和git commit操作,先将代码提交到本地分支。
3、切换会本地主分支,并更新主分支代码
$ git checkout dev
$ git pull
切换回主分支并执行git pull命令,拉取最新的代码,防止在解决bug过程中有人往主分支提交代码,导致本地主分支滞后。
4、回到开发分支并执行git rebase命令
$ git checkout bug_001
$ git rebase -i HEAD~2  //合并提交 --- 2表示合并两个
$ git rebase dev
切换到bug分支后执行git rebase -i操作,可以将本地的多次提交合并为一次,以简化提交历史,这步不是必须的,也可以省略掉。本地有多个提交时,如果不进行这一步,在git rebase dev时会多次解决冲突(最坏情况下,每一个提交都会相应解决一个冲突)。接着执行git rebase dev将dev最新的分支同步到本地,这个过程可能需要手动解决冲突(如果进行了上一步的话,只用解决一次冲突),如果git rebase的过程中出现了冲突,解决冲突后还需要执行git add,完了接着执行git rebase --continue命令。
5、回到主分支merge开发分支并push代码
$ git checkout dev
$ git merge bug_001
$ git push -u origin dev:dev
接着再切换回主分支,并执行merge操作,然后就可以push到远程开发分支了。
6、总结
这么做看起来比较复杂,但是好处是显而易见的。
比如说我们在开发的时候经常会遇到代码本地提交完成后push代码的时候失败,提示我们的本地代码滞后远程分支,一般我们会选择git pull操作,但是这么操作会导致git提交记录里面多一次merge记录,因为git pull操作实际上就等于git fetch操作和git merger操作的结合,用git rebase操作就可以避免这个现象,可以最大限度的保持提交记录的整洁性。
其次严格按照上面的Git开发流程还可以保证我们本地分支的灵活度,本地开发清晰并有迹可循。

文章来源:https://blog.csdn.net/astonishqft/article/details/102509539
最后生成于 2020-03-24 14:26:58