Git - 将分支移动到主分支

32

我有一个实际源代码的分支,很长一段时间没有在主分支上进行提交,现在主分支已经完全过时了。我想要用我的分支内容替换主分支的内容。一种方法是同时检出分支和主分支,删除主分支的内容,并将内容从分支复制到主分支,之后将结果推送到主分支。

这种方法是可行的,但我相信一定有一些git命令可以更简单地完成它。

有人知道如何操作吗?


你怎么知道主分支上没有任何有价值的内容了呢?你可以使用“git log branch..master”命令来检查主分支上是否有任何提交记录不在分支上。如果有,那么执行“git checkout master; git merge branch”命令将包含这些提交记录中的更改。 - Kent
1个回答

59
你可以使用以下命令将主分支指向新的位置:
git branch -f master branchToMoveMasterTo 实际上,这个命令是创建一个名为 master 的新分支,它指向 branchToMoveMasterTo。由于我们已经有了一个名为 master 的分支,因此需要使用 -f 标志来表示我们要删除原来的 master 分支。

这个很好用。但是有没有办法保留旧主的历史记录呢?我的意思是,它怎么才能看起来像一个普通的提交,但是改变了一切? - Kun Wu
如果您想保留旧主分支,您需要在将主分支移动到新位置之前创建一个指向相同 SHA 的分支。Git 分支只是指针;它们没有附加的历史记录。 - Matt
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Olaf Dietsche

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接