【问题标题】:How do I rebase while skipping a particular commit?如何在跳过特定提交时变基?
【发布时间】:2012-09-26 15:07:44
【问题描述】:

有没有办法在跳过另一个分支上的特定(冲突)提交时将一个分支重新定位到另一个分支上?

例如,我想将mybranch 变基为master,但master 包含一个与master 中的提交冲突的提交,所以我更愿意完全撤消该提交。

-o-o-o-o-o-x-o-o-o-o master
     |
     o-o-o-o mybranch

x 标记冲突的提交。

【问题讨论】:

    标签: git rebase git-rebase git-interactive-rebase


    【解决方案1】:

    使用交互式变基:

    git rebase -i master
    

    将打开一个编辑器,您将看到如下提交列表:

    pick b8f7c25 Fix 1
    pick 273b0bb Fix 2
    pick 6aaea1b Fix 3
    

    只需删除您要跳过的提交即可。在将您的分支重新定位到 master 时,它将被省略。

    P.S.如果看不到编辑器,请参考这个问题解决:How can I set up an editor to work with Git on Windows?

    【讨论】:

    • 编辑器只显示 mybranch 上的提交。有没有办法让它显示所有提交;即从mybranch的尖端,到master,再到master的尖端?
    • 你想删除你的分支还是master中的提交?第二个选项如果非常不安全并且会给所有其他以master 作为上游的开发人员带来麻烦。
    • 我想跳过对 master 的提交(我添加了一个图表作为我的问题的一部分)。目前我并不担心上游的master
    • 当结帐大师并做git rebase -i <commit-you-want-to-omit>^并在编辑器中将其删除。
    猜你喜欢
    • 2010-10-18
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    相关资源
    最近更新 更多