我已经阅读了Git社区手册的基本分支和合并部分。

所以我遵循它,创建了一个分支:实验。

然后我:

切换到实验分支(git校验实验) 做一些改变 提交(git Commit -a) 切换到主分支(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 reset --hard

将工作恢复到上次提交时的状态。这将丢失你在工作树中所做的更改,所以如果你在合并之前有局部修改,它们将在合并之后消失——这就是为什么当你有局部修改时不启动合并是明智的。:)

其他回答

当合并过程中出现冲突时,必须手动完成合并提交。听起来好像您已经完成了前两个步骤,编辑冲突的文件,然后运行git add将它们标记为已解决。最后,你需要用git commit提交合并。在这一点上,您将能够再次切换分支。

快速提示:你可以使用git commit -am“your commit message”来同时对所跟踪的文件执行添加和提交操作。(来源:@vaheeds)

如果你曾经被卡住在合并/重基,你可以总是

git reset --hard

将工作恢复到上次提交时的状态。这将丢失你在工作树中所做的更改,所以如果你在合并之前有局部修改,它们将在合并之后消失——这就是为什么当你有局部修改时不启动合并是明智的。:)

我如何完成合并后解决我的合并冲突?

使用Git 2.12(2017年第一季度),您将拥有更自然的命令:

git merge --continue

如果你不想在继续/恢复合并时编辑消息:

git merge --continue --no-edit

如果——no-edit不起作用,正如akseli在评论中报告的那样,你可以这样做:

# Linux
GIT_EDITOR=true git merge --continue

# Windows
cmd /V /C "set "GIT_EDITOR=true" && git merge --continue"

您可以为这些命令定义别名。


参见Jeff King (peff)提交c7d227d(2016年12月15日)。 参见Chris Packham (cpackham)的commit 042e290, commit c261a87, commit 367ff69(2016年12月14日)。 (由Junio C Hamano合并- gitster -在提交05f6e1b, 2016年12月27日)

参见2.12版本说明。

合并:添加“——continue”选项作为“git commit”的同义词

教会'git merge'——continue选项,允许' continue ' a 通过完成合并。 解决冲突后完成合并的传统方法是使用'git commit'。 现在像'git rebase'和'git cherry-pick'这样的命令有一个'——continue'选项,添加这样一个选项到'git merge'会呈现一个一致的UI。

手动解决冲突后的下一步操作是:-

Git添加。 Git状态(这将显示继续自动合并过程需要哪些命令) [命令git建议,例如git merge—continue, git cherry-pick—continue, git rebase—continue]

另一个选择也是,我尝试了隐藏和工作为我没有任何承诺

在你解决了所有的矛盾之后,

->去藏匿

-> git stash应用存储@{0}

工作很好,你也可以切换到另一个分支。