【发布时间】:2011-01-29 06:25:03
【问题描述】:
我已阅读 Git 社区手册的 Basic Branching and Merging 部分。
所以我跟着它创建了一个分支:experimental。
然后我:
- 切换到实验分支(git checkout experimental)
- 进行大量更改
- 提交它(git commit -a)
- 切换到master分支(git checkout master)
- 进行一些更改并在那里提交
- 切换回实验性(git checkout experimental)
- 将主更改合并到实验(git 合并主)
存在一些冲突,但在我解决它们后,我执行了 'git add myfile'
现在我被卡住了,我无法回到主人那里
当我这样做时
$ git checkout master
error: Entry 'res/layout/my_item.xml' would be overwritten by merge. Cannot merge.
我做到了:
$ git rebase --abort
没有正在进行的变基?
我做到了:
$ git add res/layout/socialhub_list_item.xml
$ git checkout master
error: Entry 'res/layout/my_item.xml' would be overwritten by merge. Cannot merge.
我该怎么做才能回到我的主分支?
【问题讨论】:
-
修复冲突后,执行添加,然后尝试使用
git commit gf2n.cpp -m "Hand merge gf2n.cpp due to conflicts"执行提交,结果是fatal: cannot do a partial commit during a merge..当然,“部分提交” 似乎没有在 git 手册页的任何地方记录或讨论。在修复后执行git merge会导致Please, commit your changes before you can merge.多么糟糕的工具... -
带有显式路径的 git 提交在说明中的手册页中记录为“3.通过列出文件作为提交命令的参数,在这种情况下,提交将忽略索引中暂存的更改,而是记录列出文件的当前内容(Git 必须已经知道);”以及在“- -only' 选项。我很确定合并消息是由假设您已阅读提交命令的工作原理的人编写的,并且可以识别该描述中“部分”一词的含义,如果还没有的话,那么至少再次更仔细。@jww
-
那么,为什么该案例研究值得仔细阅读以便理解,而联机帮助页却没有呢? @jww
-
嗯,使用 git 显然需要比您准备获得的更好的阅读理解能力。我可能更不确定这是 git 的错误,而不是您确定的错误。
-
使用 Git 2.12(2017 年第一季度),您很快就会简单地执行
git merge --continue。见my answer below