gpt4 book ai didi

git - 如何将带有交互式 rebase 的提交编辑为未提交?

转载 作者:行者123 更新时间:2023-12-02 00:44:47 25 4
gpt4 key购买 nike

我想使用交互式 rebase 来编辑以前的提交,但是当我进入该提交的编辑模式时,所有文件都已提交。

我知道我可以进行更改和修改提交,但我希望所有更改最初都未提交(暂存或其他方式),这样我就可以编辑它,就好像它是最初提交之前的片刻一样。这可能吗?

最佳答案

想象 git rebase --interactive 给你这个列表:

pick 3d15626 first
pick 7911b8b second
pick 60d94b4 third

现在您想要编辑处于未提交状态的第二个提交。为此,像这样更改它的行:

pick 3d15626 first
exec git cherry-pick --no-commit 7911b8b && false
pick 60d94b4 third

这一行的作用:

  • 不是通常选择提交 git cherry-pick 而是执行
  • git cherry-pick 会将“第二个”提交(注意使用相同的提交哈希)应用于索引和工作树,预加载提交消息但不提交(--不提交)
  • && false 通过返回失败的退出代码确保执行的命令“失败”。这会强制 git rebase 在此行之后中断,让您“修复”问题,即您现在可以编辑提交
  • 完成编辑后,您可以再次git commit。由于 git cherry-pick
  • ,编辑器将自动包含原始提交消息
  • 提交提交并且索引再次干净后,您可以继续 git rebase --continue

关于git - 如何将带有交互式 rebase 的提交编辑为未提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513186/

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