在合并到 master 之前,我即将在项目中提交最后一次签入。我已经暂存了更改,但是当我尝试提交时,出现有关冲突的错误:
error: Committing is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
我不确定,但“未合并”是否是“有冲突”的另一种说法?如果是这样,我不知道这些冲突可能在哪里。我的所有源文件都是 A 和 M,并且暂存区中的所有文件都是相同的。
有人能提供一种简单的方法来追踪这些吗?
是的。当文件包含需要协调的冲突更改时,Git 会将其称为未合并。
例如,您发布的错误消息是您在尝试完成合并而不先解决其冲突时收到的错误消息。就您而言,可能是您正在进行的操作集成了未完成的更改(如合并、重新定基、挑选、恢复)。
为了知道哪个命令仍在运行,你可以从你的存储库打开 Git CLI,并检查传输到当前分支的操作。例如,如果你在分支上正在进行合并
master
,你应该看到(master|MERGING)
。或者,你可以运行git status
并显示以下消息:要获取冲突/未合并文件的列表,您可以使用
git ls-files
:git diff
一旦发现了冲突,您就应该解决它们、暂存它们并最终提交。
如果您在执行命令(合并、变基或其他)期间做了其他更改,并且不希望它们成为最终提交的一部分,则可以存储它们。此操作会将您的进一步更改保存到堆栈中,以便稍后重新应用,这样您就只剩下要包含在操作提交中的修改。提交成功后,您可以将存储的更改重新应用到工作目录,并创建第二个提交。