在您的问题中,您写道您不期望合并冲突。测试git checkout
更加保守:当前分支和目标分支中本地修改文件的原始文件(即提交的文件)是否完全不同?
运行以下创建first
分支后
$ git checkout -b 先
$编辑..
$ 混帐添加 -p 。
$ git commit -m 先
1 个文件已更改,1 个插入(+),0 个删除(-)
您可能会看到类似于
$ git结帐基础
错误:您对以下文件的本地更改将被覆盖
查看:
[文件..]
请在切换分支之前提交您的更改或存储它们。
中止
当试图切换回base
.
在这种情况下工作的--merge
选项。git checkout
-m
--merge
切换分支时,如果您对一个或多个在当前分支和您要切换到的分支之间不同的文件进行了本地修改,该命令将拒绝切换分支以在上下文中保留您的修改。但是,使用此选项,当前分支、您的工作树内容和新分支之间的三向合并完成,您将位于新分支上。
当发生合并冲突时,冲突路径的索引条目将保持未合并,您需要解决冲突并将已解决的路径标记为git add
(或者git rm
如果合并应该导致删除路径)。
跑步git checkout -m base
会让你回到你开始的地方——但可能比你想要的更远。您将在base
分支上进行所有编辑,而不仅仅是针对second
和的更改third
。对于每次提交,您都需要放弃其他两个分支的更改,而不是逐步削减您的更改。