我做了一件蠢事,结果引起了冲突。我解决了冲突,现在一切都好了(我也使用了mergetool)。
当我用git commit file.php -m "message"提交解析文件时,我得到了错误:
fatal: cannot do a partial commit during a merge.
我以前遇到过同样的问题,在commit中使用-a工作得很好。我认为这不是完美的方式,因为我不想提交所有的更改。我想用单独的注释单独提交文件。我该怎么做呢?为什么git不允许用户在合并后单独提交文件?对于这个问题,我找不到满意的答案。
有时在合并过程中,如果出现冲突,并且存在需要手动解决的增量。在这种情况下,修复手动解决文件提到。
如果你提出,
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
你的承诺将会毫无问题地完成。
Git commit -i -m 'merge message'不适合我。它说:
fatal:没有包含——include/——only的路径是没有意义的。
FWIW,我通过这个相关的问题来到这里,因为我得到了这样的信息:
fatal:你还没有结束你的合并(MERGE_HEAD存在)。
我还尝试了mergetool,它说没有文件需要合并。很困惑!所以MERGE_HEAD不在需要合并的文件中-??
最后,我用这个技巧只添加修改过的文件(不想添加树中的所有文件,因为我有一些我想保持不跟踪):
git ls-files -m |xargs git add
然后我终于(!)能够承诺并向上推。如果git能给你更好的提示,告诉你在这种情况下该怎么做,那就太好了。