我知道我可以通过运行此命令将一个git项目的一个分支(称为#39; old')移植到另一个分支(说' new'):
cd old # location of the 'old' repo
git push git:git@github.com:dude/new.git a-branch
但是我不想将分支的所有历史记录推送到新的git项目。我只想在这个分支中包含一部分提交。
我该怎么做?
答案 0 :(得分:1)
如果您只想推送历史记录的子集,则必须创建一个仅包含要推送的提交子集的分支。因此,请根据您当前的
创建一个新分支git checkout -b subsetOfCommits
比交互模式中的rebase。
git rebase -i firstCommitYouWantToChange
使用rebase交互式编辑器和squash
,fixup
,移动或删除提交。
最后将该分支推送到您想要的任何地方。
答案 1 :(得分:0)
您只需指定要将该分支限制为的SHA1:
git push git:git@github.com:dude/new.git <SHA1>:abranch
<SHA1>
之前的所有提交都将被推送到abranch
repo上的远程分支“new.git
”。
例如见:
<SHA1>
”git cherry-pick