Git - 将分支移动到主控

Posted

技术标签:

【中文标题】Git - 将分支移动到主控【英文标题】:Git - move branch to master 【发布时间】:2012-04-20 02:17:17 【问题描述】:

我有一个带有实际来源的分支,很长一段时间我都没有进行任何提交来掌握,目前它已经完全过时了。我只想用我的分支的内容替换 master 的内容。一种方法是检查分支和主节点,删除主节点的内容并将内容从分支复制到主节点,然后将结果推送到主节点。

它有效,但我相信必须有一些 git 命令才能以更简单的方式完成它。

有人知道怎么做吗?

【问题讨论】:

你怎么知道master上没有任何有价值的东西了?您可以使用 'git log branch..master' 检查 master 上是否有任何提交,而不是分支上。如果有,则 'git checkout master; git merge branch' 将包含这些提交中的更改。 【参考方案1】:

您可以使用以下命令让 master 指向一个新位置:git branch -f master branchToMoveMasterTo

这实际上是创建一个名为master 的新分支,它指向branchToMoveMasterTo。由于我们已经有一个名为 master 的分支,我们需要 -f 标志来表示我们要删除原来的 master

【讨论】:

这很好用。但是有什么办法可以保存老主人的历史吗?我的意思是,它怎么可能看起来像一个普通的提交,却改变了一切? 如果您想保留旧的 master,您需要在将 master 移动到新位置之前创建一个指向相同 SHA 的分支。 Git 分支只是指针;他们没有任何历史记录。 另见***.com/a/29559362/1741542。当前分支不得为master(或您要移动的任何分支)

以上是关于Git - 将分支移动到主控的主要内容,如果未能解决你的问题,请参考以下文章

sh Git:将分支指针移动到不同的提交

如何将包含所有分支的 Git 存储库从 Bitbucket 移动到 GitHub?

如何使用 Git / IntelliJ 将整个文件从一个分支移动/复制到另一个分支? [复制]

如何将提交移动到 git 中的暂存区?

sh 将git存储库及其所有分支,标记移动到新的远程存储库,保留提交历史记录

将提交从一个分支移动到另一个分支