Git:将特定提交移动到另一个分支

sbx*_*mal 17 git git-commit

拥有两个分支的存储库.

主分支提交:

c1,c2,c3,c4,c5,c6,c7,...,c15,...

暂存分支提交:

c1,c2,c3,c4,c5,c6,c7

我想在c7之后将所有提交从Master分支转移到分段分支

然后还原Master分支

git reset --hard c7-hash
Run Code Online (Sandbox Code Playgroud)

如何将特定提交从一个分支移动/复制到另一个分支?

Jon*_*ely 35

在您描述的情况下,登台分支上的所有提交也在主分支上,这很容易:

git checkout staging
git merge master
git checkout master
git reset --hard c7-hash
Run Code Online (Sandbox Code Playgroud)

合并将是一个快进.

在一般情况下,您可以使用git cherry-pick c8 c9 c10 c11 c12 c13 c14 c15樱桃挑选当前分支的单个提交.樱桃挑选主要但不是当前分支的所有提交的简短方法是git cherry-pick ..master,并且还有其他示例git help cherry-pick