我想将给定的提交重新设置为我当前分支的 HEAD。当然,我可以使用git rebase -i <future-head-SHA>~
然后将其移至 HEAD(如本问题所述),但我想自动化此过程。
有没有一种巧妙的方法来做到这一点?
谢谢
并不真地。交互式 rebase 是唯一设计用来做这种事情的工具。不过,假设您可以编写此脚本:
rebase -i
编写一个脚本,从作为其第一个参数传递的文件中读取指令列表- 您通常可以在编辑器中自己编辑的文件 - 并将重新排序的列表写回该文件。如果您安装了 GNU sed(其他版本的 sed 通常不支持该-i
标志),以下应该可以工作:
GIT_SEQUENCE_EDITOR="sed -i -e '1 {h; d}; $ {p; g}'" git rebase -i <commit>~
git rebase 提交 ID
此命令为您完成这项工作。