代码之家  ›  专栏  ›  技术社区  ›  Danny Lin

在git rebase-i期间挤压提交时,如何跳过编辑器提示?

git
  •  1
  • Danny Lin  · 技术社区  · 8 年前

    假设我有一个具有很长提交历史的Git存储库。我想运行一个交互式重基来将几个提交挤压在一起。

    默认情况下,Git会在每次挤压完成后提示文本编辑器,让用户编辑提交消息,但我想跳过编辑器,直接使用合并的提交消息(因为重基过程可能需要很多小时才能完成,我不想在每次挤压完成后麻烦地等待计算机进行编辑)。有办法做到这一点吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   torek    8 年前

    交互式重基使用您的首选 序列编辑器 编辑要运行的命令 Git编辑器 编辑压缩的消息。因此,您可以使用两个不同的编辑器设置交互式重基:一个实际编辑,另一个只显示 一切都成功了,我们都完成了 。如果不选择序列编辑器,则默认为首选Git编辑器,因此不会看到任何差异,但如果 您可以选择两个单独的编辑器。

    然后,您可以在命令行中使用:

    GIT_SEQUENCE_EDITOR=<your editor> GIT_EDITOR=true git rebase -i
    

    phd pointed out 我们可以让Git插入您自己选择的编辑器(例如 core.editor 设置)通过shell扩展,例如此sh/bash语法:

    GIT_SEQUENCE_EDITOR=$(git var GIT_EDITOR) GIT_EDITOR=true git rebase -i
    

    这将使用 /bin/true “编辑”每个合并的提交消息的程序(或其外壳内置的等效程序)。