Git 重新设置单个提交头的基础
我想重新设定一个给定的承诺,成为我目前的分支机构负责人。当然,我可以使用Git 重新设置单个提交头的基础,git,rebasing,Git,Rebasing,我想重新设定一个给定的承诺,成为我目前的分支机构负责人。当然,我可以使用git-rebase-I~,然后将其向下移动到HEAD(如中所述),但我想自动化这个过程 有没有一个简洁的方法可以做到这一点 谢谢不太感谢。Interactive rebase是唯一一个设计用于实现这类功能的工具。不过,假设您可以编写以下脚本: 编写一个脚本,从作为第一个参数传递的文件中读取rebase-i指令列表,该文件通常是在编辑器中自己编辑的文件,然后将重新排序的列表写回该文件 告诉Git在启动交互式rebase时将
git-rebase-I~
,然后将其向下移动到HEAD(如中所述),但我想自动化这个过程
有没有一个简洁的方法可以做到这一点
谢谢不太感谢。Interactive rebase是唯一一个设计用于实现这类功能的工具。不过,假设您可以编写以下脚本:
- 编写一个脚本,从作为第一个参数传递的文件中读取
指令列表,该文件通常是在编辑器中自己编辑的文件,然后将重新排序的列表写回该文件rebase-i
- 告诉Git在启动交互式rebase时将该脚本用作编辑器,以便它用于重写rebase指令,而不是让您手动编辑它们
-i
标志),那么以下功能应该可以工作:
GIT_SEQUENCE_EDITOR=“sed-i-e'1{h;d};${p;g}'”GIT-rebase-i~
git-rebase-commit-id
这个命令为你做了工作。
也许考虑看Cyt Poice?嗯,提交已经在我的分支中了,在这个例子里,樱桃会做什么?哦,我明白了。它不在树眼的其他地方,我想对提交进行重新排序,以使特定的提交位于顶部。这样做的目的是什么?一般来说,您应该使用GIT_序列编辑器
,而不是GIT_编辑器
,以便只影响pick
命令的编辑。当然,只要pick命令中没有一个变成edit
或squash
,就没有关系,因为Git不会在同一进程会话期间运行$Git\u EDITOR
。
GIT_SEQUENCE_EDITOR="sed -i -e '1 {h; d}; $ {p; g}'" git rebase -i <commit>~