如何解决 git status “未合并的路径:”?

Posted

技术标签:

【中文标题】如何解决 git status “未合并的路径:”?【英文标题】:How to resolve git status "Unmerged paths:"? 【发布时间】:2011-03-13 12:44:16 【问题描述】:

我将分支dog 合并到animal。当我去提交时,我得到以下信息:

Unmerged paths:
(use "git reset HEAD <file>..." to unstage)
(use "git add <file>..." to mark resolution
both deleted:       ../public/images/originals/dog.ai
added by them:      ../public/images/original_files/dog.ai

我在每个分支中都有不同的目录名和文件名。 animal 分支有我想要的更改。

当我去重置头部时,它不起作用。当我执行任何其他 git 操作(删除、结帐等)时,我会收到 path not found 错误。

我需要执行什么命令来解决这个问题?

【问题讨论】:

【参考方案1】:

您需要做的就是:

# if the file in the right place isn't already committed:
git add <path to desired file>

# remove the "both deleted" file from the index:
git rm --cached ../public/images/originals/dog.ai

# commit the merge:
git commit

【讨论】:

进一步的解释会派上用场【参考方案2】:

如果您的文件已经签入,并且您的文件已被合并(但未提交,因此合并冲突被插入到文件中),另一种处理这种情况的方法是运行:

git reset

这将切换到 HEAD,并告诉 git 忘记任何合并冲突,并保持工作目录不变。然后您可以编辑有问题的文件(搜索“更新的上游”通知)。处理完冲突后,您可以运行

git add -p

这将允许您以交互方式选择要添加到索引的更改。一旦索引看起来不错(git diff --cached),您可以提交,然后

git reset --hard

销毁工作目录中所有不需要的更改。

【讨论】:

什么是"Updated upstream" notices @takias:每个文件中的标记类似于:&lt;&lt;&lt;&lt;&lt;&lt;&lt; [branch] \n [content] \n ==== \n [content] \n [branch] &gt;&gt;&gt;&gt;&gt;&gt;&gt;。我认为自从我写这篇文章以来,格式可能略有变化,但请参阅 wincent.com/wiki/Git_merge_conflict_cheatsheet 示例。

以上是关于如何解决 git status “未合并的路径:”?的主要内容,如果未能解决你的问题,请参考以下文章

git checkout:“他们的”和“我们的”的详细含义

一个命令解决 git status 命令执行慢

git解决git status 时中文乱码问题

git status 显示中文和解决中文乱码

Windows下Git Status的乱码问题解决方案

git status 下中文显示乱码问题解决