关于分支管理的问题

来源:互联网 发布:iphone6手机壳淘宝 编辑:程序博客网 时间:2024/05/22 16:14

下面只是记录一下我自己不是很熟悉的一些命令,常用的省去了。

git checkout -b sub 意思是创建并切换到分支sub上,而 git branch sub 只是创建分支,然后通过 git checkout sub 切换过去。

git checkout -D sub 是强制删除sub分支的命令,另外还有-d


git merge sub 意思是合并分支sub到当前分支上,平时提交代码然后review之后就是做这个的;这个操作面临commit冲突的风险,所以有时会提示commit冲突,这时自己解冲突就好了;

这里的合并模式叫做fast forward模式,也就是快进模式,指的是把master分支直接指向sub分支,所以这样的合并速度比较快,因为只要修改指针就好,合并之后删了sub分支也没事;但是它的缺点也很明显:在主分支看来,合并的这一个操作并没有记录,特别是当sub分支删除了之后,我极有可能忘了我是从什么commit号之后进行的合并,万一要查bug呢? 这里就用到下面的一个合并方式;

执行命令

git merge --no-ff -m "merge sub no-ff" sub

这一条命令执行以后,本次合并操作也将作为一个commit操作,这样以后就有据可查,方面代码管理。


当遇到当前代码开发一半,但是需要优先解决一个bug并提交的问题,这时我没法提交代码,因为新功能没写完,但是bug很严重,影响版本发布必须马上修复bug并提交,这时可以这样:

git stash  保存当前工作

解决bug

git stash pop (这个操作是git stash apply git stash drop XXX 两个操作的合并版,XXX是stash 号,可以通过git stash list查看)    把刚才保存的工作给取回来继续开发。


有一个命令需要注意:git checkout -b sub origin/sub 也就是在本地创建并切换到sub分支,并于远程仓库的sub分支进行关联

而命令 git branch --set-upstream sub origin/sub 的作用是将本地的sub分支与远程的sub分支进行关联






0 0