【发布时间】:2012-08-22 16:08:19
【问题描述】:
(关于这个有很多类似的问题,我也阅读了各种文档,但我找不到任何回答这个特定问题的东西。)
给定一个没有远程和分支的存储库,在 master 上有 20 次提交。
目的是最终得到一个空 master,所有提交都在develop,但没有混乱的历史。
有没有区别:
git branch --move master develop
git checkout --orphan master
还有:
git checkout -b develop
git merge master
git checkout master
git reset --hard HEAD^20
?
第一个选项似乎是执行此操作的最简单方法,但我在任何地方都没有看到它建议 - 我一直在阅读的所有内容都倾向于使用第二个选项的变体(或变基,我没有认为在这里适用)。
第一个选项是否像我认为的那样做,与第二个选项相比,它有什么好处/缺点吗?
有没有更好的替代方法来实现这一点?
【问题讨论】:
-
我认为您找到第二个序列的原因是
git checkout --orphan是git的一个相对较新的补充,部分是为了解决这样的场景。第二个序列部分有效(如 Blakes 回答中所述),但不足以实现目标。 -
感谢您的信息 - 它确实足够新,我需要升级 Git,因为它只是在尝试这样做时说
error: unknown option 'orphan'。 :)
标签: git branch branching-strategy