我想创建一个孤立分支来复制所有提交。
基本上我需要以 master 和 dev 结束,它们都是孤儿但都相同(直到我做出进一步的提交)。
我已经创建了孤儿主控(空),并让开发人员完成了我所有的提交。如何将所有这些提交复制到 master?
最佳答案
(这里不判断孤立分支是否是正确的解决方案,只是试图回答关于复制历史的最初问题。
作为nneonneo comments 常规分支可能没问题)
问题在于,如果两个分支之间的 SHA1 相同,则第二个分支将始终是指向第一个分支提交的简单指针。
可行的是:
- 创建一个克隆
- 在该克隆上,插入一个空提交作为您的
master
分支的第一个提交。
见“git: how to insert a commit as the first, shifting all the others?” - 回到您的原始存储库,将该主分支作为一个新分支导入(我最喜欢的创建孤立分支的技巧,正如我在“Backup then reset
master
branch with git?”中所解释的那样。
那看起来像:
cd /original/repo
git fetch /path/to/clone master:dev
这将创建一个孤立分支dev
,所有(相同)提交都比master
(在空分支之上)
关于具有相同提交的 git 孤儿分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031711/