14

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

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

(-> 表示合并)

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

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

4

3 回答 3

17

我可以给你两个选择:

  • 交互式 rebase ( git rebase -i) 为您呈现提交列表,编辑此列表将更改操作结果;允许您重新排序、删除或标记这些提交以进行杂项操作。在您的情况下,您可以将[*]'s 分支变基为[_]'s 并删除不需要的提交行。

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

于 2012-04-12T17:32:18.103 回答
2

你可以看看你_樱桃挑选*。如果你想在一个单独的分支上这样做,你可以在这样做之前分支出来_

于 2012-04-12T17:30:02.657 回答
1

您可以通过变基和压缩您不需要的提交来组合您的提交。可能是你没有做壁球和采摘。

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

于 2012-04-12T17:22:00.937 回答