文件处于未合并状态时不允许提交

时间:2011-06-22 10:53:43

标签: git merge

当我使用

时,即使文件处于未合并状态,Git也允许您提交
git commit -a -m "message"

我知道它有效但有没有办法阻止用户在合并后使用commit -a选项

由于 Ankita Nema

2 个答案:

答案 0 :(得分:2)

我将从问题的根本开始,并检查合并时存在未分级更改的原因。

根据经验,在进行拉取之前要么stash away进行更改,要么commit这些更改,以便您的存储库对于传入的合并是干净的。

样品:

假设您正在处理某些事情,并且现在不想提交,因为您还没有完成。但是你需要合并一些对你的任务很重要的东西。

git stash save "description"
git pull
# merge everything and commit merge changes
git stash pop   #brings back all your changes from before
然后,Git将重新应用您使用git stash save保存的所有内容,并且您可以使用未提交的更改来合并存储库。

答案 1 :(得分:0)

您可以使用“预提交”挂钩。

在“.git / hooks”目录中,创建一个名为pre-commit的可执行文件。

每次在存储库上完成提交时都会触发此程序:如果返回代码不为0,则提交将中止。

在此程序中,您可以检查要为“<<<<<<<<<<< ...”链提交的文件。如果您找到它,那么仍然存在未合并文件的线索:所以您拒绝提交(带有明确的错误消息)。

您将在“.git / hooks”目录中找到一个“pre-commit.sample”文件,向您展示预提交的工作原理。你只需要适应它(一个简单的“grep”应该没问题。)