【发布时间】:2014-08-04 12:32:23
【问题描述】:
有什么方法可以防止合并冲突的文件在 git 中提交?没有人会故意提交有冲突的文件。但是有没有办法防止文件在 git 中被提交?
git 是否在任何地方都有任何设置或可配置值,它可以通过查找<<<<<<<、======= 或>>>>>>> 符号来阻止文件?
【问题讨论】:
-
将
git rev-parse -q --verify HEAD && sed -n '/^<<<<<<< /Q1' $(git diff --diff-filter=M --name-only HEAD $(git write-tree)) || { echo "It looks like rain."; exit 1; }添加到.git/hooks/pre-commit。这是键盘到编辑框,但它应该基本正确。 -
你能告诉我上述条件的作用吗,因为它对我不起作用。我在预提交文件中添加了条件,并尝试在 git bash 中添加一个新文件,文件被添加,然后提交它也成功了。如果我错过了什么,请告诉我。
-
git 插件是否提供此限制?
-
@jthill 预提交按预期工作,但我在预接收中使用了相同的条件,但失败了。我在 Eclipse 中使用 egit 提交文件,但我在服务器中有预接收,但在推送冲突文件时,预接收挂钩被调用,但仍继续推送。我希望文件不会被推送。
-
@jthill:你会把它作为答案发布吗?在这个页面上发生的很多人将直接使用 git,而不是 Eclipse。 VonC 的答案对我不起作用,除非我找到一些 Perl 依赖项。我也不需要额外的 console.log 和其他检查。
标签: git github merge-conflict-resolution