Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在git中合并彼此相差太大的两个分支_Git_Merge_Rebase - Fatal编程技术网

如何在git中合并彼此相差太大的两个分支

如何在git中合并彼此相差太大的两个分支,git,merge,rebase,Git,Merge,Rebase,我有两个分支:主分支(非常古老)和新分支 我想实现的基本目标是让新的分支成为大师 我试图合并,但没有成功。合并的结果仍然不是主分支与新分支相同 我试图重新设置基址,但也没有成功,它告诉我,我有一些已删除的文件,无法重新设置基址。最后,我从跟踪中删除了所有已删除的文件,但重新定基的结果还是有点错误。我建议使用“我们的”策略执行合并。这样做可以让你了解大师的历史,而实际上忽略了其他一切。最终的结果是,新的主节点将与当前分支的外观完全相同 一步一步看起来像: git checkout goodBran

我有两个分支:主分支(非常古老)和新分支

我想实现的基本目标是让新的分支成为大师

我试图合并,但没有成功。合并的结果仍然不是主分支与新分支相同


我试图重新设置基址,但也没有成功,它告诉我,我有一些已删除的文件,无法重新设置基址。最后,我从跟踪中删除了所有已删除的文件,但重新定基的结果还是有点错误。

我建议使用“我们的”策略执行合并。这样做可以让你了解大师的历史,而实际上忽略了其他一切。最终的结果是,新的主节点将与当前分支的外观完全相同

一步一步看起来像:

git checkout goodBranch
git merge master -s ours
git checkout master
git merge goodBranch

听起来您只是想重命名分支:

git branch -m master old   # rename master to old
git branch -m new master   # rename new to master
在此之后,如果您也要清理遥控器,请相应地:

git push origin old        # backup of the old master
git push origin master -f  # need to force, history changed
git push origin :new       # delete "new", which is now master

你想克隆你的一个脑袋成为主人吗?或者你是在试图解决新旧代码之间的冲突,并拥有一个合并的副本?我只想要一个分支,新的分支,我想将其重命名为master。这个问题的副本只有在没有远程分支的情况下,此解决方案才会真正起作用,如果有,那么重命名的过程就要复杂一些。我想你是对的,值得一提,所以我添加了一个注释。