可能重複:
How to cherry pick a range of commits and merge into another branchgit的櫻桃挑選多次提交
我想摘櫻桃從一個分支19次的提交,並將其應用到另一個分支。所有的提交都是順序的(提交1,提交2 ...提交19),最後一次提交不是最近的提交(即其他提交之後的更改我不想應用)。我怎樣才能將我的更改應用於分支,而無需爲每次提交輸入git cherry-pick
?
可能重複:
How to cherry pick a range of commits and merge into another branchgit的櫻桃挑選多次提交
我想摘櫻桃從一個分支19次的提交,並將其應用到另一個分支。所有的提交都是順序的(提交1,提交2 ...提交19),最後一次提交不是最近的提交(即其他提交之後的更改我不想應用)。我怎樣才能將我的更改應用於分支,而無需爲每次提交輸入git cherry-pick
?
git的櫻桃採摘$ from_sha .. $ to_sha
的一種方式做手工(不採摘櫻桃)
從你的分支的頭做一個新的分支提交所在位置git branch newB
硬復位此新分支到最後一次提交git reset --hard <shaID of Commit19>
方法1
做的混合復位到直接提交之前的第一次提交git reset --mixed <shaId of the mentioned commit>
做一個存儲在該「改性的」代碼只是有提交1至19 git stash
轉到你想應用本手冊櫻桃挑選和做一個流行的地方git checkout <dstBranch>
& & git stash pop
方法2(此方法將保持提交消息)
做一個硬復位到提交權利之前第一次提交git reset --hard <shaId of the mentioned commit>
做的reflogs以前的狀態git merge --squash [email protected]{1}
現在你會看到提交1-19將被索引,如果你做了提交,提交msg將被預填充所有的單個提交msgs ...允許你修改msg爲想要的
現在你有了自己的承諾,櫻桃選擇這個承諾到你想要的地方。它具有所有想要的提交消息的好處。
做 刪除臨時分支擺脫所有你已經完成了做垃圾的內部挑git branch -D newB
肯定這樣做的正確方法:) – g19fanatic
你知道當'git cherry-pick HEAD..branch-name'? – Uri