2012-04-12 81 views
8

我有一些我不想在我的项目中提交的提交,但有一个基于它的提交,我确实需要它。 这是库的我的GitHub的“网络”图(ASCII,因为我现在还不能发表图片):如何跳过git中的提交?

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

( - >表示合并)

我想删除所做的更改两个[·]提交,并将[*]之一放在上面的[_]上。 我试过合并和重新绑定,但它们应用了不需要的提交的更改。 这可能吗?

对不起,如果我不清楚,英语不是我的母语。 在此先感谢。

回答

10

我可以给你两个选择:

  • 互动变基git rebase -i)提出您提交列表,编辑这个清单将改变操作的结果;允许您重新排序,删除或标记这些提交用于其他操作。在你的情况下,你可以将[*]的分支重组为[_],并删除不需要的提交行。

  • Cherrypick让您应用单一的变化提交到另一个分支。在你的情况下,你可以简单地将[*]挑选成[_]的分支。

2

你可以看看你的_cherry pick*。如果你想在一个单独的分支上,你可以从_分支。