Leo*_*yev 8 git git-add git-rm
我正在拉入我的.emacs目录,并遇到以下冲突:
CONFLICT (add/add): Merge conflict in elisp/dired-details+.el
Run Code Online (Sandbox Code Playgroud)
Git状态显示如下:
Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
# both added: elisp/dired-details+.el
Run Code Online (Sandbox Code Playgroud)
好的,所以git建议使用git rm.我想完全取代我拉在文件的本地文件,因此它似乎有种那种理智......所以,我做的git rm elisp/dired-details+.el和git merge.我明白了:
git merge:致命:你还没有完成你的合并(MERGE_HEAD存在).请在合并之前提交您的更改.
好的,好的:git commit -a -m "ugh merge conflicts"; git pull origin master.
现在一切都合并得很好,除了我失踪dired-details+.el,我有点困惑,我想知道以下的答案:
git-rm从远程分支撤消并获取该文件?add/add什么?git-rm'我要替换的文件?...首先,使用撤消合并提交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合并的"您的".
| 归档时间: |
|
| 查看次数: |
6556 次 |
| 最近记录: |