0

我想将给定的提交重新设置为我当前分支的 HEAD。当然,我可以使用git rebase -i <future-head-SHA>~然后将其移至 HEAD(如本问题所述),但我想自动化此过程。

有没有一种巧妙的方法来做到这一点?

谢谢

4

2 回答 2

2

并不真地。交互式 rebase 是唯一设计用来做这种事情的工具。不过,假设您可以编写此脚本:

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

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

GIT_SEQUENCE_EDITOR="sed -i -e '1 {h; d}; $ {p; g}'" git rebase -i <commit>~
于 2019-03-02T16:42:08.163 回答
-1

git rebase 提交 ID

此命令为您完成这项工作。

于 2019-03-02T17:44:05.490 回答