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

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

fatal: cannot do a partial commit during a merge.

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


当前回答

简单地git commit -m“comment”应该在解决冲突后工作。

其他回答

你的合并在动作中间停止了。 你应该添加你的文件,然后'git commit':

git 添加file_1.php file_2.php file_3.php git 提交

干杯

对于我自己来说,当我试图在解析所有文件之前提交合并时,在SourceTree中发生了这种情况。然后我将最后一个文件标记为已解决,但在尝试提交时它仍然给了我这个错误。我关闭了SourceTree并重新打开它,然后它就正常了。

Git commit -i -m 'merge message'不适合我。它说:

fatal:没有包含——include/——only的路径是没有意义的。

FWIW,我通过这个相关的问题来到这里,因为我得到了这样的信息:

fatal:你还没有结束你的合并(MERGE_HEAD存在)。

我还尝试了mergetool,它说没有文件需要合并。很困惑!所以MERGE_HEAD不在需要合并的文件中-??

最后,我用这个技巧只添加修改过的文件(不想添加树中的所有文件,因为我有一些我想保持不跟踪):

git ls-files -m |xargs git add

然后我终于(!)能够承诺并向上推。如果git能给你更好的提示,告诉你在这种情况下该怎么做,那就太好了。

你可以在大多数情况下使用git commit -i,但以防它不起作用

你需要git commit -m "your_merge_message"。在合并冲突期间,您不能合并单个文件,因此需要合并

只运行冲突文件(git add your_file.txt) Git commit -m "your_merge_message"

你可能在某些事情上有冲突,但你还没有准备好。git不会让你独立提交东西(因为这都是合并的一部分,我猜),所以你需要git添加那个文件,然后git commit -m "合并冲突解决"。git commit的-i标志为你添加。