我做了一件蠢事,结果引起了冲突。我解决了冲突,现在一切都好了(我也使用了mergetool)。

当我用git commit file.php -m "message"提交解析文件时,我得到了错误:

fatal: cannot do a partial commit during a merge.

我以前遇到过同样的问题,在commit中使用-a工作得很好。我认为这不是完美的方式,因为我不想提交所有的更改。我想用单独的注释单独提交文件。我该怎么做呢?为什么git不允许用户在合并后单独提交文件?对于这个问题,我找不到满意的答案。


当前回答

如果存在合并,则不能执行部分提交,这意味着必须提交更改、添加或删除的所有内容。

在我的例子中,文件挂起删除,但它们没有包含在提交中。一旦我包含了它们,我在sourcetree中的提交就很顺利了(我不需要使用命令行)。

立即查看签入文件下面,是否有任何未包含在提交中的更改?

其他回答

在阅读所有评论后。这就是我的决心: 我不得不再次“添加”它,而不是提交:

$ git commit -i -m support.html "doit once for all" [master 18ea92e] support.html

在合并过程中,Git出于各种原因想要跟踪父分支。你要做的不是git所看到的merge。您可能想要手动进行基数调整或选择。

我发现在提交命令中添加“-i”可以为我解决这个问题。-i基本上告诉它在提交之前提交额外的文件。 那就是:

git commit -i myfile.php

看起来您错过了提交命令的-m

有时在合并过程中,如果出现冲突,并且存在需要手动解决的增量。在这种情况下,修复手动解决文件提到。

如果你提出,

git status Lib/MyFile.php

您将看到如下输出

On branch warehouse
Your branch and 'origin/warehouse' have diverged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

All conflicts fixed but you are still merging.
  (use "git commit" to conclude merge)

Changes to be committed:

    modified:   Lib/MyFile.php

因为您已经执行了提交,所以您只需要发布

git commit

你的承诺将会毫无问题地完成。