2013-04-12 149 views
2

假設master和origin/master不同。
我在主人身上,我想提交來自原產地/主人提交後提交,然後推 - 力。git:在我提交了一個rebase命令後,他們提交

 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的復位 - 硬」檢查出一些文件和「git的重訂」提交申請之前,再次改寫它們。這是一項多餘的工作。
變2:

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

命令太多。我只想用一個命令來做到這一點。

+0

你爲變體2編寫了一個別名,將其減少爲單個命令? – simont

回答

2

我得到了答案:

git cherry-pick HEAD..origin/master 

雖然摘櫻桃是不是智力的底墊,將無法丟棄在這種情況下,提交(K,L,M):

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

感謝Johan Herland – basin