【问题标题】:Re-basing onto a specific commit重新基于特定的提交
【发布时间】:2021-03-17 04:41:55
【问题描述】:

我检查了Git: How to rebase to a specific commit?,但我无法理解,我的问题不相似

  • 我有一个分支,其中有 2 个提交 xy

  • 我在该分支中添加了另一个提交 z,并希望用 x 压缩它。

  • 每次我打开文本编辑器进行变基时,它只显示提交 y 并且 我无法使用x 对其进行变基。

编辑:

我尝试使用:

git rebase -i x

【问题讨论】:

    标签: git


    【解决方案1】:

    您可以通过在xy 提交之上进行z 提交来解决此问题:

    # from your branch
    git commit -m 'z commit'
    

    然后,我们可以进行交互式变基、重新排序提交和压缩。输入以下内容:

    git rebase -i --root your_branch
    

    这应该会打开一个编辑器窗口,显示您从 oldestnewest 的三个提交:

    pick dj39fm2 message for commit x
    pick m83mdk2 message for commit y
    pick 3kme92w message for commit z
    

    现在,重新排序提交,使z 紧跟在x 之后,然后将提交z 的选项更改为squash,告诉Git 你想将它压缩到x提交:

    pick dj39fm2 message for commit x
    squash 3kme92w message for commit z
    pick m83mdk2 message for commit y
    

    现在保存文件,退出编辑器,并允许 Git 启动 rebase。请注意,您可能会在 squash 期间或在 y 提交重新应用于新基时遇到一些合并冲突。

    【讨论】:

    • 有什么办法可以移动订单或者我只需要重新输入吗?
    • @ThunderKnight 我已经给出了我认为最好的答案。请尝试一下,如果你在某个地方卡住了,请告诉我。
    猜你喜欢
    • 2021-07-22
    • 2022-10-20
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多