我有一系列的叉子提交,我想一次应用或拒绝一个叉子到我的叉子。我应该使用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