Git合并冲突模拟失败求助:如何无需Pull Request演示合并冲突
如何正确模拟Git合并冲突并修正你的操作问题
你操作里的核心错误
你在步骤6执行的git merge origin/Branch1完全偏离了目标:
- 你已经切换到本地的
Branch1分支,此时合并远程的origin/Branch1(本质是同一个分支的远程镜像),Git检测到两者内容完全同步,自然会提示Already up to date——这根本不会触发任何合并操作,更别说冲突了。 - 要触发合并冲突,核心是要合并两个修改了同一文件相同位置的不同分支,而不是同一个分支的本地与远程版本。
无需Pull Request的本地合并冲突模拟方法
完全可以在本地仓库完成模拟,不需要推送到远程,也不用创建Pull Request,步骤如下:
- 先确保你的本地
develop分支处于干净状态(执行git status确认没有未提交的变更) - 从
develop创建并切换到Branch1:git checkout -b Branch1 develop - 切回
develop分支,创建并切换到Branch2:git checkout develop git checkout -b Branch2 develop - 在
Branch1上修改一个共同文件(比如README.md)的同一行内容,例如将第一行改为:Branch1: 这是分支1的修改,然后提交变更:git add README.md git commit -m "Branch1: 修改README内容" - 切换到
Branch2,修改同一文件的同一行内容,例如改为:Branch2: 这是分支2的修改,然后提交变更:git checkout Branch2 git add README.md git commit -m "Branch2: 修改README内容" - 现在切换到
Branch1,执行合并Branch2的操作:
此时Git会立刻提示合并冲突,告诉你哪个文件存在冲突,你就能看到预期的冲突场景了!git checkout Branch1 git merge Branch2
额外技巧:模拟与develop分支的冲突
如果想模拟分支与develop的冲突,也可以这么操作:
- 在
Branch1修改文件并提交后,切回develop分支,修改同一文件的同一位置并提交 - 再切回
Branch1执行git merge develop,同样会触发合并冲突
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

