git:在我的提交之后使用单个rebase命令提交他们的提交

时间:2013-04-12 12:19:48

标签: git

假设主人和出生地/主人分歧 我是主人,我想在提交之后将来自origin / master的提交然后推送--force。

     A---B---C origin/master
    /
D---E---F---G *master

     A---B---C origin/master
    /
D---E---F---G---A'---B'---C' *master

变式1:

git branch -f tmp
git reset --hard origin/master
git rebase tmp

这个变种很糟糕,因为'git reset --hard'检出了一些文件,'git rebase'在应用提交之前再次重写它们。这是一项多余的工作 变式2:

git branch -f tmp origin/master
git rebase --onto master master tmp
git branch -f master
git checkout master

命令太多。我想用一个命令来做这件事。

1 个答案:

答案 0 :(得分:2)

我得到了答案:

git cherry-pick HEAD..origin/master

虽然在这种情况下,樱桃选择并不像rebase那样智能,并且无法丢弃提交(k,l,m):

     /--k---l---m---A---B---C origin/master
    /
D---E---k'--l'--m'---F---G *master