将单个提交变基到 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
此命令为您完成工作。
我想将给定的提交变基为我当前分支的 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
此命令为您完成工作。