我跑了一个互动变基高达承诺abcdef
。Git的前面加上所有提交的信息互动变基
git rebase -i abcdef
在编辑器 - Vim的我改变了所有pick hash
线
reword hash PREFIX: Original commit message
使用这个vim的命令
%s/pick \(\w\{7}\)/reword \1 PREFIX:/
但随后混帐接着提示我编辑的每个消息承诺。有没有简单的方法批量这个过程?
我跑了一个互动变基高达承诺abcdef
。Git的前面加上所有提交的信息互动变基
git rebase -i abcdef
在编辑器 - Vim的我改变了所有pick hash
线
reword hash PREFIX: Original commit message
使用这个vim的命令
%s/pick \(\w\{7}\)/reword \1 PREFIX:/
但随后混帐接着提示我编辑的每个消息承诺。有没有简单的方法批量这个过程?
GIT_EDITOR='sed -i "1s/^/PREFIX: /"' GIT_SEQUENCE_EDITOR=vim \
git rebase -i abcdef
或交替你可以
git -c core.editor='sed -i "1s/^/PREFIX: /"' \
-c sequence.editor=vim \
rebase -i abcdef
,如果你不想使用环境覆盖。
如果你知道你要改写所有这些,你甚至可以用sed序列,GIT_SEQUENCE_EDITOR='sed -i "s/^pick/reword/"'
。
另一射击在谷歌使我这个:
@jtill你觉得https://davidwalsh.name/update-git-commit-messages什么? – peter
filter-branch也可以工作,这只是目前最方便的问题。有时候你需要一把螺丝刀,有时候你需要一个撬棒,有时候会花一分钱,有时候他们最终都会完成这项工作,而这只是当前最好的一个问题。 'git commit --amend'用于签出提交,'git rebase -i'用于大容量混洗以及合并elision和轻量级rewords,'git filter-branch'用于批量批处理作业,其中您所做的并不是大块头洗牌和重新开始筹备开始。 – jthill
第二个示例在sed命令中有一个小错字 - 缺少斜杠。它应该是'sed -i“1s/^/PREFIX:/”'如上。 – jthodges