我最近提出了一个愚蠢的错误,即提交包含
Git rebase消息的代码,类似于<<<<< bridage/overcommit)
但似乎没有这样的检查.
编辑:在overcommit中,有这个PreCommit / MergeConflicts钩子,它只通过git commit检查我的手动提交,但如果它在rebase期间发生,它将不会触发.
希望我能找到一种真正的方法来检测这一点.
最佳答案 <<<<<
<<<<<<< HEAD
conflicting changes in HEAD
============
conflicting changes in current commit
>>>>>>> commit SHA1
每当发生冲突时,git bash通过暂停rebase并显示确切的提交号来提供指示.您可以手动解决冲突,也可以通过像kdiff3这样的合并工具解决冲突.然后你可以做git rebase – 继续继续rebase.
我们来看一个例子
上面的例子有以下几点
> git bash在将branch1重新定位到master时检测到冲突
> git提供帮助,希望可能是下一步
> git暂停了rebase并显示rebase暂停的时间点.
这些都清楚地表明您的文件标有冲突标签.
这是这一点的文件
所以你必须去文件,找到标记的标签,删除或添加行,保存文件,git添加它并输入git rebase –continue to resolve.
在您的情况下,您可能会意外地离开<<<<<<<<<< HEAD标记并继续使用rebase. 为避免这种情况,最好的方法是使用像kdiff3这样的合并工具.你可以在这里找到这些步骤
http://jebaird.com/2013/07/08/setting-up-kdiff3-as-the-default-merge-tool-for-git-on-windows.html
安装并配置kdiff3之后,只需在bash中输入git mergetool就可以打开kdiff3,只要有冲突并通过简单地选择所需的部分来解决冲突. kdiff3还提供了通过单击按钮跳转到冲突行的功能.
希望这可以帮助