我最近加入了一个项目,该项目有一个 github 存储库,其分支实际上是整个源代码树的全新开始。 我想复制一个分支,从“新源树”提交开始,复制到一个新的存储库,而没有旧源树的任何残留物留在存储库中(允许存储库小得多) 。 实现这一目标需要哪些步骤?
这是有问题的“新源树”提交:
警告...它真的很大。
https://github.com/ohmage/server/commit/078aecd78d54c6c20e124be3a54979e3a9d81c6f
我不知道这是否一定是最好的方法,而且我还没有广泛测试它,但我会按照这些思路做一些事情(假设 - 你想要复制的分支称为
mybranch
):
$ git checkout --orphan tmpbranch <hash_of_first_commit>
$ git commit -a -m 'first commit'
$ git cherry-pick <hash_of_first_commit>..mybranch
master
分支: $ git push <URL_of_new_repo> refs/heads/tmpbranch:refs/heads/master
tmpbranch
,这样垃圾收集最终会为你清理干净: $ git checkout mybranch
$ git branch -D tmpbranch