重新提交对HEAD的一次提交

时间:2019-03-02 16:21:35

标签: git rebasing

我想将给定的提交重新设置为当前分支的HEAD。当然,我可以使用git rebase -i <future-head-SHA>~,然后将其向下移动到HEAD(如this question中所述),但是我想使这一过程自动化。

有没有一种整齐的方法可以做到这一点?

谢谢

2 个答案:

答案 0 :(得分: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>~

答案 1 :(得分:-1)

git rebase commit-id

此命令为您完成工作。