我有一个包含两个分支的代码库。
主分支(Master)的提交记录:
c1, c2, c3, c4, c5, c6, c7, ..., c15, ...
暂存分支(Staging)的提交记录:
c1, c2, c3, c4, c5, c6, c7
我想把主分支(Master)中c7之后的所有提交记录移动到暂存分支(Staging)中,
然后还原主分支(Master)
使用:
git reset --hard c7-hash
如何将特定的提交从一个分支移动/复制到另一个分支?
我有一个包含两个分支的代码库。
主分支(Master)的提交记录:
c1, c2, c3, c4, c5, c6, c7, ..., c15, ...
暂存分支(Staging)的提交记录:
c1, c2, c3, c4, c5, c6, c7
我想把主分支(Master)中c7之后的所有提交记录移动到暂存分支(Staging)中,
然后还原主分支(Master)
使用:
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
合并到暂存分支,同时由于这些提交已经在主分支中被重置,因此不会撤销暂存分支中的c8...c15?希望确保在该合并之后,c8...c15仍留在暂存分支中。 - Marcus Leon
git checkout staging
,git merge master
,git checkout master
,git reset --hard c7-hash
- tewe