Git 在交互式 rebase 中预先添加所有提交消息

标签 git rebase

我运行了一个交互式 rebase 来提交 abcdef

git rebase -i abcdef

在编辑器 - Vim 中,我将所有 pick hash 行更改为

reword hash PREFIX: Original commit message 使用这个 vim 命令

%s/pick\(\w\{7}\)/reword\1 PREFIX:/

但随后 git 继续提示我为每次提交编辑消息。有没有简单的方法来批处理这个过程?

最佳答案

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/"'

关于Git 在交互式 rebase 中预先添加所有提交消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43349905/

相关文章:

git - 当分支上的文件拆分为主文件上的两个文件时 merge 更改

Git rebase 导致几乎所有文件的 merge 冲突 - 即使是未触及的文件

git autosetuprebase 不工作?

Github 仓库 - 'fatal: Could not read from remote repository.'

git - 递归地将整个文件夹添加到存储库

git - 与 Ext4 (Linux) 相比,为什么 lstat 在 APFS (OSX) 上的性能较差

git - 在不使用 Rebase 的情况下重做 GIT 中的提交历史

git - git 如何在提交图中存储 "edges"?

git - 如何修改 GitHub pull request?

git - 我如何 "reopen"一个 git 提交?