我有一个刚刚改写的项目,它完全改变了应用程序的文件结构,并升级了其中的许多部分。我不再关心master分支中的内容;我希望我创建的PR用version-2分支中的master替换master中的所有内容。我只是不确定要使用什么命令。
我在GitHub上创建了PR,但是它无法自动(显然)为我合并,但是在version-2分支上运行-Width
也不起作用,因为我无法确切知道它是否在运行优先考虑版本2的更改,而不是开发人员中的任何更改。
希望这有意义...我正在寻找哪个git命令?同样,当版本2合并到母版中时,我希望版本2在任何潜在的合并冲突中覆盖母版。
答案 0 :(得分:1)
您可以通过指定针对您的案例的合并策略ours
来创建“伪合并”:
git checkout version-2
git merge -s our master -m "This is a brand new version 2"
git update-ref -m "Promote master to version-2" master refs/heads/version-2
git checkout master
git branch -D version-2 # if nobody needs version-2 anymore
这种方法比重命名分支稍长,但是可以保留项目的整个历史记录。 master分支的所有用户都将获得重大更改,而无需任何额外的努力。
答案 1 :(得分:0)
假设两个分支不共享历史记录,则不需要它们共享历史记录(例如,其他远程pull
的共享对象),并且您想升级dev
来代替master
,最简单的方法就是重命名它们:
git branch -m master old-version
git branch -m dev master
请注意,这将不允许其他地方的现有存储库git pull
更新其master
分支。但是,他们可以先git fetch
,然后再get checkout -b master --track origin/master
。