4

在我当前的开发环境中,当我git rebase以交互模式 ( --interactive) 运行时,它通常会打开vi并提示我对某些文本文件进行更改,以便我告诉它如何处理变基。vi 以似乎由 git 确定的方式突出显示这些文件。(在此上下文中对 git 具有特殊含义的关键字,如“pick”、“squash”等,用不同的颜色突出显示。)

我更喜欢使用 emacs 而不是 vi,因此我将 git 配置为改为打开 emacs ( git config --global core.editor "emacs -nw")。不幸的是,emacs 并没有像 vi 那样突出显示 git 提供的文件。我怎样才能解决这个问题?


编辑:

如果你不熟悉交互式 git rebase 生成的文件,这里有一个例子:

pick f218f23 A major overhaul of the cucumber integration tests
pick 601d8f4 A bunch of minor bug fixes and refactoring
pick 1adc507 Adding and updating documentation for various files.

# Rebase ff8cb22..1adc507 onto ff8cb22
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
c:\my_project\.git\rebase-merge\git-rebase-todo [unix] (15:50 26/10/2012)

在此示例中,关键字“pick”、修订哈希、提交描述和注释都将以不同的颜色突出显示。

4

2 回答 2

3

要么已经在某个地方有一个模式(例如,作为 magit 的一部分),要么有人必须为它编写一个模式(应该相当容易,如果你向我们展示一些示例内容,以及一些关于哪种类型的提示他们拥有的文件名)。

于 2012-10-26T20:49:18.120 回答
0

http://bogolisk.github.com/egg/egg-log-rebase.png

Egg 内置了对交互式变基的支持。您首先选择 DAG 上的提交,然后启动交互式 rebase。

-- http://bogolisk.github.com/egg/

于 2012-11-09T18:52:03.540 回答