将单个提交变基到 HEAD

Rebase a single commit to HEAD

我想将给定的提交变基为我当前分支的 HEAD。当然,我可以使用 git rebase -i <future-head-SHA>~ 然后将其向下移动到 HEAD(如 this question 中所述),但我想自动执行此过程。

有什么好的方法可以做到这一点吗?

谢谢

不是真的。 Interactive rebase 是唯一设计用于执行此类操作的工具。不过,假设您可以编写脚本:

  • 编写一个脚本,从作为第一个参数传递的文件中读取 rebase -i 指令列表 - 您通常会在编辑器中自行编辑的文件 - 并写入重新排序的列表回到那个文件。
  • 告诉 Git 在启动交互式变基时将该脚本用作编辑器,以便它用于重写变基指令而不是让您手动编辑它们。

如果您安装了 GNU sed(其他版本的 sed 通常不支持 -i 标志),以下内容应该可以工作:

GIT_SEQUENCE_EDITOR="sed -i -e '1 {h; d}; $ {p; g}'" git rebase -i <commit>~

git rebase commit-id

此命令为您完成工作。