【问题标题】:How can I skip commits in git?如何在 git 中跳过提交?
【发布时间】:2012-04-25 02:07:00
【问题描述】:

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

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

(-> 表示合并)

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

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

【问题讨论】:

    标签: git git-commit


    【解决方案1】:

    我可以给你两个选择:

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

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

    【讨论】:

      【解决方案2】:

      您可以查看您的_cherry pick *。如果您想在单独的分支上使用它,您可以在执行此操作之前从 _ 分支。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 感谢您的链接,非常有用的回复!
        猜你喜欢
        • 2011-11-06
        • 2018-03-11
        • 1970-01-01
        • 1970-01-01
        • 2010-10-18
        • 1970-01-01
        • 2011-07-15
        • 2021-03-11
        相关资源
        最近更新 更多