gpt4 book ai didi

git - 有没有一种方法可以简单地在提交前加上交互式 rebase ?

转载 作者:太空狗 更新时间:2023-10-29 14:16:31 25 4
gpt4 key购买 nike

假设我有一个基于 master 的分支,它以 merge 提交结尾:

--A---C<master]---D---E---F<my-feature]
\ /
B

添加提交 XD 之间和 E使用交互式 rebase 很简单——我运行

git rebase -i master

,设置提交 D操作edit , rebase 后 rebase 停止D .我只是在那一刻创建新的提交,然后继续 rebase 。分支现在看起来像

...C<master]---D---X---E'---F'<my_freature] .

现在我想在 C 之间添加一个提交和 D .期望的结果:

C<master]---X---D'---E'---F'<my_freature]

我试过了

git rebase -i master~

我想在哪里设置 merge 提交 Cedit , 但交互式 rebase 以某种方式忽略了 merge 提交 C并且只提供给我链A--B--D--E ,因此 rebase 导致 merge 提交丢失 C .

有没有一种简单的方法可以像这样使用交互式 rebase 将提交添加到分支?

请注意,我可以想出一个有点复杂的解决方案,比如创建新分支 tmpmaster , promise X然后对其进行 rebase my-featuretmp ,我只是好奇是否有一种简单直接的交互式 rebase 方法。

最佳答案

我刚刚成功重现了您的场景,并通过向 `git rebase 添加 -p 选项 (--preserve-merges) 在 C 和 D 之间插入了提交 X:

git rebase -i -p master^

其余工作流程如您所述:告诉 rebase 编辑 merge 提交,手动插入新提交并使用 git rebase --continue 完成。

顺便说一句,很酷的工作流程!我想我会使用它。

编辑:我用 Git 2.4 测试了这个解决方案。如果你有更新版本的 Git,@torek 建议使用更安全的 --rebase-merges 选项而不是 --preserve-merges。请参阅下面的评论以获取解释。

关于git - 有没有一种方法可以简单地在提交前加上交互式 rebase ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com