如何将某个版本之间的分支推送到另一个版本?

时间:2015-01-28 03:51:27

标签: git

我知道我可以通过运行此命令将一个git项目的一个分支(称为#39; old')移植到另一个分支(说' new'):

 cd old # location of the 'old' repo
 git push git:git@github.com:dude/new.git a-branch 

但是我不想将分支的所有历史记录推送到新的git项目。我只想在这个分支中包含一部分提交。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果您只想推送历史记录的子集,则必须创建一个仅包含要推送的提交子集的分支。因此,请根据您当前的

创建一个新分支
git checkout -b subsetOfCommits

比交互模式中的rebase。

git rebase -i firstCommitYouWantToChange

使用rebase交互式编辑器和squashfixup,移动或删除提交。

最后将该分支推送到您想要的任何地方。

答案 1 :(得分:0)

您只需指定要将该分支限制为的SHA1:

git push git:git@github.com:dude/new.git <SHA1>:abranch

<SHA1>之前的所有提交都将被推送到abranch repo上的远程分支“new.git”。 例如见: