具有两个分支的存储库。Git:将特定提交移动到另一个分支
主分支提交:
C1,C2,C3,C4,C5,C6,C7,......,C15,...
分期分公司承诺:
C1,C2 ,C3,C4,C5,C6,C7
我希望将所有来自主分支提交后C7到分段分支
,然后恢复马斯之三分支
与
git reset --hard c7-hash
如何从一个分支移动/复制特定提交到另一个?
具有两个分支的存储库。Git:将特定提交移动到另一个分支
主分支提交:
C1,C2,C3,C4,C5,C6,C7,......,C15,...
分期分公司承诺:
C1,C2 ,C3,C4,C5,C6,C7
我希望将所有来自主分支提交后C7到分段分支
,然后恢复马斯之三分支
与
git reset --hard c7-hash
如何从一个分支移动/复制特定提交到另一个?
在这种情况下你所描述,所有提交的临时分支也都对主分支,它很容易:
git checkout staging
git merge master
git checkout master
git reset --hard c7-hash
合并将是一个快速前进。
在一般情况下,您可以使用git cherry-pick c8 c9 c10 c11 c12 c13 c14 c15
樱桃选择单个提交到当前分支。樱桃挑选所有在主分支但不是当前分支的提交的更简单的方法是git cherry-pick ..master
,并且还有其他示例git help cherry-pick
做完这些之后,让我们说你提交' x“给主分支。然后你将主人合并到分期中。这将合并到分期正确合并'x'到分期,而_not_恢复c8 ... c15在分期由于这些提交已被重置在主?在合并之后,要确保c8 ... c15保持暂存状态。 –
@MarcusLeon,合并不会恢复那些提交。那些提交没有在主人身上归还,他们被彻底删除。重置不是回复。创建测试提交和测试场景很简单,试试吧。 –
在这种情况下,您不必移动提交,因为可以快速转发登台分支掌握。 git checkout staging', 'git merge master', 'git checkout master', 'git reset --hard c7-hash' – tewe
[如何将某些提交移动到git中的另一个分支?]( http://stackoverflow.com/questions/2369426/how-to-move-certain-commits-to-another-branch-in-git) – Kevin
可能的重复[如何将最近的提交移动到一个新的分支用git?](http://stackoverflow.com/questions/1628563/how-can-i-move-recent-commits-to-a-new-branch-with-git) –