如何自动检测Git提交或rebase是否包含类似“<<<<< HEAD”的内容?

我最近提出了一个愚蠢的错误,即提交包含
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提交或rebase是否包含类似“<<<<< HEAD”的内容?》

上面的例子有以下几点

> git bash在将branch1重新定位到master时检测到冲突
> git提供帮助,希望可能是下一步
> git暂停了rebase并显示rebase暂停的时间点.

这些都清楚地表明您的文件标有冲突标签.

这是这一点的文件

《如何自动检测Git提交或rebase是否包含类似“<<<<< HEAD”的内容?》

所以你必须去文件,找到标记的标签,删除或添加行,保存文件,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还提供了通过单击按钮跳转到冲突行的功能.

希望这可以帮助

点赞