我已经阅读了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 HEAD没有更新。 这个推荐将解决git重置HEAD。

其他回答

添加完所有文件后,下一步是“git提交”。

“git status”会提示要做什么:尚未添加的文件被列在底部,一旦它们都完成了,它会建议在顶部提交,在那里它解释了当前分支的合并状态。

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

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

当你使用命令git merge brancha branchb合并两个分支时,有两种可能:

通过跟踪一个分支(我们称之为brancha)的提交历史,另一个分支(我们称之为branchb)可以到达它。在这种情况下,git只需快进头指向最近的分支(在这种情况下是branchb)。 2.但是如果两个分支在某个较旧的点上分离了,那么git会创建一个新的快照并添加一个指向它的新提交。所以如果 合并的分支之间没有冲突,git平滑地创建了一个新的提交。

运行git log查看合并两个不冲突分支后的提交情况。

现在回到有趣的情况,合并分支之间存在合并冲突。这句话摘自https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging页

Git没有自动创建新的合并提交。在您解决冲突时,它暂停了进程。如果你想在合并冲突发生后的任何时刻查看哪些文件未合并,你可以运行git status


因此,如果存在合并冲突,你需要解决冲突,然后使用git add filename将你所做的更改添加到暂存区域,然后使用git commit命令提交这些更改,git会因为冲突暂停该命令。我希望这能解释你的问题。也请访问上面的链接以获得详细的了解。如果有任何疑问,请在下面评论,我很乐意帮助。

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

使用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将使用标记冲突内容两边的可视指示器编辑受影响文件的内容。

<<<<<<< HEAD
conflicted text from HEAD
=======
conflicted text from merging_branch
>>>>>>> merging_branch

当你修复了冲突文件并准备合并时,你所要做的就是运行git add和git commit来生成合并提交。一旦提交完成,git就会将更改推送到分支。

引用文章:Git merge。