无需编辑器,如何直接调用Git交互式变基编辑指定提交?
当然可以!你完全可以跳过手动修改rebase todo列表的步骤,用几个实用的命令组合直接进入目标提交的编辑状态。具体方法如下:
快捷编辑指定Git提交的方法
1. 直接构造Todo列表(已知提交信息时)
如果你已经清楚要修改的提交和后续提交的内容,可以直接把编辑好的todo内容通过管道传给git rebase -i,对应你场景的命令就是:
echo -e "edit 447a1cb Either left or right\npick ef35186 Introducing side effects" | git rebase -i f47adfa0
执行这条命令后,Git会直接启动rebase流程,自动将目标提交设为edit状态,无需你手动打开todo文件修改,保存后立刻进入该提交的编辑环节。
2. 通用自动化方式(未知后续提交时)
如果不确定后续有多少提交,或者想让命令更通用,可以结合git log和sed自动生成修改后的todo列表:
git log --reverse --format="pick %h %s" f47adfa0..HEAD | sed 's/^pick 447a1cb/edit 447a1cb/' | git rebase -i f47adfa0
git log部分会生成从f47adfa0到当前HEAD的所有提交的todo模板(按提交顺序排列)sed命令会精准替换目标提交的pick为edit- 最后将处理后的内容传递给
git rebase -i,自动进入编辑状态
需要说明的是,Git本身没有一个单一的原生命令可以直接“一键编辑指定历史提交”,但通过上面的组合命令,就能完美替代手动修改todo的步骤,实现你想要的效果。
内容的提问来源于stack exchange,提问作者Chris Stryczynski
相关产品推荐
相关产品推荐

