如何跳过git中的提交?

时间:2012-04-12 17:13:43

标签: git git-commit

我有一些我不希望在我的项目中提交的提交,但有一个基于它的提交,我确实想要它。 这是我的GitHub存储库“网络”图(ASCII,因为我仍然无法发布图像):

[]--[]--[_]
|        |
|        ------->|
---------->[·]--[·]--[*]

( - >表示合并)

我想删除两个[·]提交中所做的更改,并将[*]一个基于上面的[_]一个。 我尝试了合并和变基,但它们应用了不需要的提交的更改。 有可能吗?

对不起,如果我不清楚,英语不是我的母语。 提前谢谢。

3 个答案:

答案 0 :(得分:12)

我可以给你两个选择:

  • 交互式rebase git rebase -i)会显示提交列表,编辑此列表会更改操作结果;允许您为其他操作重新排序,删除或标记这些提交。在您的情况下,您可以将[*]的分支重新绑定到[_]并删除不需要的提交行。

  • Cherrypick 可让您将单一提交的更改应用到另一个分支中。在您的情况下,您可以简单地将[*]提交到[_]的分支中。

答案 1 :(得分:2)

您可以查看_cherry pick *。如果您希望在单独的分支上进行,则可以在执行此操作之前从_分支。

答案 2 :(得分:1)

你可以通过rebase和压缩你不需要的提交来组合你的提交。可能是你没有做壁球和挑选。

参考: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html