我有一系列的叉子提交,我想一次應用或拒絕一個叉子到我的叉子。我應該使用git cherry-pick嗎?如何在git中一次提交一系列提交?
回答
我會使用一個交互式的rebase此:
git rebase -i master fork-branch
當Git會詢問你想與每個提交的做什麼,告訴它編輯爲所有這些(搜索和替換挑 - >編輯)。保存並退出,交互式底圖將通過提交,在每個提示處停下來讓你做你的事情。做你的測試,決定是否要保留它。如果你這樣做,只需運行git rebase --continue
即可進入下一步。如果您不這樣做,請運行git reset --hard HEAD^
重置爲之前的提交,丟棄您不想要的那個,然後轉到git rebase --continue
。
如果您立即知道您不需要的提交,則可以將它們從列表中刪除,而不是更改選擇以進行編輯。當然,如果我完全誤解了,並且你不需要做任何測試,那麼你幾乎可以忽略前面的段落,並通過有選擇地刪除行來完成。
我認爲這正是我想要的。 – 2010-08-12 15:26:06
@Chas。歐文斯:太棒了!另外,你可能知道這一點,但如果你不想實際移動fork分支,或者如果它是一個你不能真正移動的遠程分支,那麼你應該在該點創建另一個分支來重新綁定。 – Cascabel 2010-08-12 15:54:14
當git-rebase沒有提到任何有關URL的內容時,我很快就明白了這一點。 – 2010-08-12 17:47:06
是的。 git cherry-pick COMMIT_SHA
將允許你抓住一個特定的提交。不過,你不需要拒絕提交。只是不要挑選他們。
作爲git的新手,這種事情讓我感到困惑。如果我忽略了幾次提交,我會不會被迫徹底挑選它們?就像我在下一次合併時,是不是想將這些被忽略的提交與任何新提交合並? – Hans 2010-08-12 16:11:06
@Hans:你對下一次合併是正確的,所以一般來說,選擇性櫻桃採摘是爲你不知道的情況保留的,決不會合並另一個分支。你應該理想的設計你的分支,這樣你就不必挑選櫻桃。例如,請參閱上一個問題的答案(並且不要錯過評論中的鏈接!)http://stackoverflow.com/questions/3419689/understanding-git-cherry-pick/3420792#3420792您也可以搜索SO瞭解有關工作流的信息,或者發佈一個新問題,如果您想了解更多信息。 – Cascabel 2010-08-12 16:48:28
@Jefromi - 好吧,但是如果你是高手試圖合併origin/master,那麼你基本上需要最終完成這一切?肯定是贊成重分支/合併的論點(當然,這是一個出色的工作流程,但我無法將我的svn過去) – Hans 2010-08-12 20:54:35
- 1. Git:如何通過一次提交恢復一系列提交
- 2. 如何在一次提交中提交SVN和GIT?
- 3. git - 將一系列提交合併爲一個提交
- 4. 在git中一次提交一個
- 5. 恢復git中的一系列提交
- 6. git rebase一次提交
- 7. 提交代碼在Git中,分支在源頭提交一次提交
- 8. Git:如何克隆第一次提交?
- 9. 我如何git rebase第一次提交?
- 10. 在git中分裂第一次提交
- 11. Git:提前一次提交頭文件
- 12. 如何在git中提交提交?
- 13. 是否可以在git中一次一個地提交提交,而不是同時提交所有提交?
- 14. 如何在git中從另一個倉庫提取一系列提交?
- 15. 我如何在git中提交一個未提交的提交日期?
- 16. 如何從遠程git存儲庫一次提交一個提交?
- 17. Git rebase:用一次提交修正多個提交
- 18. 檢查提交是否在提交前第一次提交
- 19. 提交svn unstages最後一次提交?
- 20. Git:交互式重定義一系列提交
- 21. git合併重新提交提交到另一個提交?
- 22. 上一次提交Git標籤
- 23. 第一次提交Git結賬
- 24. 將本地Git提交到git-svn的一個提交中
- 25. 如何在Git中非交互地重新提交提交
- 26. 如何將一系列目錄轉換爲Git提交?
- 27. 在分支上獲取一系列提交的提交
- 28. 如何使用gitpython做最後一次提交的當前提交的git diff?
- 29. Git - 提交列表,但只獲取當天的最後一次提交
- 30. 如何在添加多次提交後取消提交提交?
'cherry-pick'只能在一次提交時執行; 「櫻桃」適用於一系列作品。 – 2010-08-12 15:14:28
參見http://stackoverflow.com/questions/1670970/how-to-cherry-pick-multiple-commits – 2010-08-12 16:10:38
@jleedev你應該更新你的git install。 git cherry-pick現在允許提交範圍和多個提交。 – wilhelmtell 2010-08-12 18:23:07