我正在打开我的.emacs目录,并碰到了以下冲突:
CONFLICT (add/add): Merge conflict in elisp/dired-details+.elGit状态显示如下:
Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
# both added: elisp/dired-details+.el好吧,所以git建议使用git rm。我想用我要拉进来的文件完全替换本地文件,所以这似乎有点明智.所以我做git rm elisp/dired-details+.el和git merge。我得到:
git合并:致命:尚未结束合并(MERGE_HEAD存在)。请在合并之前提交您的更改。
好吧,好吧:git commit -a -m "ugh merge conflicts";git pull origin master。
现在一切都很好,除了我错过了dired-details+.el,我有点困惑,我想知道以下问题的答案:
如何从远程branch?..
git-rm并从远程git-rm获取该文件--首先是否存在冲突?对于add/add?..
git-rm代替我想替换的文件呢?.?
发布于 2011-01-06 10:46:19
首先,使用git reset --hard HEAD^撤消合并提交。请注意,这将消除最后一次提交,并将您的工作副本重置为上一次提交的状态,因此在执行此操作之前,请注意了解它将做什么。gitk可以帮助可视化这一点。
第二,git rm没有做您在这里所期望的事情。当您有合并冲突时,您将查看处于半合并状态的文件,该文件包含用于解决冲突的冲突标记。此时,您将被要求将工作副本修复到希望最终合并提交看起来类似的状态。通过删除该文件,您告诉git您不希望该文件再次出现,这不是您想要的。
在此阶段,您需要做的是将工作副本中的冲突文件更新为要保留的版本。这通常是通过检查冲突标记并相应地调整文件来完成的。在您的情况下,如果您确实想要从您要合并的分支中获得副本,可以使用git show :3:elisp/dired-details+.el > elisp/dired-details+.el进行此操作。然后git add elisp/dired-details+.el告诉git您已经解决了该文件中的冲突,然后告诉git commit完成。
在这里,git show :3:...从MERGE_HEAD请求文件的版本。如果需要不同的版本,也可以使用1作为共同祖先,也可以使用2作为合并的“您”端。
https://stackoverflow.com/questions/4613500
复制相似问题