如何避免git merge branch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何避免git merge branch相关的知识,希望对你有一定的参考价值。

参考技术A git merge的冲突判定机制如下:先寻找两个commit的公共祖先,比较同一个文件分别在ours和theirs下对于公共祖先的差异,然后合并这两组差异 参考技术B 由于太多人问怎么撤销 merge 了,于是 git 官方出了这份教程,表示在 git 现有的思想体系下怎么达到撤销 merge 的目标。方法一,reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:$ git checkout 【行merge操作时所在的分支】$ git reset --hard 【merge前的版本号】方法二,当 merge 以后还有别的操作和改动时,git 正好也有办法能撤销 merge,用 git revert:$ git revert -m 【要撤销的那条merge线的编号,从1开始计算(怎么看哪条线是几啊?)】 【merge前的版本号】Finished one revert.[master 88edd6d] Revert "Merge branch 'jk/post-checkout'" 1 files changed, 0 insertions(+), 2 deletions(-)这样会创建新的 commit 来抵消对应的 merge 操作,而且以后 git merge 【那个编号所代表的分支】 会提示:Already up-to-date.因为使用方法二会让 git 误以为这个分支的东西都是咱们不想要的。方法三,怎么撤销方法二:$ git revert 【方法二撤销merge时提交的commit的版本号,这里是88edd6d】Finished one revert.[master 268e243] Revert "Revert "Merge branch 'jk/post-checkout'"" 1 files changed, 2 insertions(+), 0 deletions(-)这样就行了,可以正常 merge 了,不过可能会有很多冲突噢!!$ git merge jk/post-checkoutAuto-merging test.txtMerge made by recursive. test.txt 1 + 1 files changed, 1 insertions(+), 0 deletions(-)

错误记录Git 使用报错 ( error: The branch ‘feature1‘ is not fully merged. )





一、报错信息



执行

git branch -d feature1

命令 , 删除 feature1 分支 , 报如下错误 :

D:\\Git\\git-learning-course>git branch -d feature1
error: The branch 'feature1' is not fully merged.
If you are sure you want to delete it, run 'git branch -D feature1'.





二、解决方案



出现上述原因 , 是因为 feature1 分支创建后 , 没有进行合并 , 报上述错误 , 提示开发者是否要进行合并之后 , 再删除这个分支 ;

看到这个提示后 , 开发者应该去考虑是否要进行合并 , 如果要合并 , 执行 分支合并 操作 , 然后就可以顺利的使用

git branch -d feature1

命令 , 删除分支 ;

如果不想合并这个分支 , 可以考虑使用

git branch -D feature1

命令 , 强行删除该 feature1 分支 ;

执行过程 :

D:\\Git\\git-learning-course>git branch -D feature1
Deleted branch feature1 (was c911a5d).

D:\\Git\\git-learning-course>

以上是关于如何避免git merge branch的主要内容,如果未能解决你的问题,请参考以下文章

如何配置git mergetool配置

git 如何解决 (master|MERGING)

如何解决gerrit merge冲突问题

git有merge时如何删除分支

git merge原理(递归三路合并算法)

git merge后,后悔了如何回退