如何使用Git GUI进行变基操作?

62

我知道如何在命令行中进行git rebase,但是如何在官方git-gui中进行呢?

4个回答

52

将以下内容添加到您的主目录下的.gitconfig文件中,以将变基命令添加到“工具”菜单中:

[guitool "Rebase onto..."]
    cmd = git rebase $REVISION
    revprompt = yes
[guitool "Rebase/Continue"]
    cmd = git rebase --continue
[guitool "Rebase/Skip"]
    cmd = git rebase --skip
[guitool "Rebase/Abort"]
    cmd = git rebase --abort
[guitool "Pull with Rebase"]
    cmd = git pull --rebase

3
在cmd行(第二行)中,您需要添加$REVISION,即cmd = git rebase $REVISION。否则,谢谢!我不知道这种功能的存在。 - Jim Raden
交互式变基也是可能的,您只需要将环境变量EDITOR设置为GUI编辑器。我认为这太多了,不适合添加到您的答案中,所以我创建了自己的答案--随意将我的答案添加到您的答案中。 - Irfy
有些窗口弹出了,但是在这些字段中输入什么呢? - Paul
我认为Jim Raden的评论是正确的,$REVISION比$VERSION更应该使用。或许Ted Percival可以编辑他的回答?我会做这件事,但我不确定$REVISION是否在各个平台上都是正确的,或者它是否是特定于某个平台的。 - Tony Park

17

git-gui 中:

  1. 进入 Tools -> Add,然后输入自定义命令,例如 git rebase master
  2. 选择 Add globally,使此选项对所有存储库都可见。(它将会把配置写入您的 ~/.gitconfig,正如 @Ted-Percival 在他的回答中所提到的)。

2
值得指出的是,您本地的Git数据库必须与您希望重新定位的分支的更改保持最新状态。如果自从您创建分支以来本地的master没有更新,那么git rebase master将不起作用!为了解决这个问题,首先在命令行中运行git checkout master; git pull; git checkout MY_BRANCH,或者将git-gui命令更改为git rebase origin\master - AlainD

4
您可以使用git gui进行完整的交互式变基,包括提交选择、重命名和冲突解决!除了Ted Percival的回答之外,将以下内容添加到您的~/.gitconfig中:
[guitool "Rebase interactive"]
    cmd = EDITOR=gvim git rebase -i $REVISION
    revprompt = yes

您必须使用图形编辑器——普通的 vim 不起作用,但是 gvim 可以。您可以使用任何 GUI 编辑器,例如我使用 nedit。每当您需要输入内容时,此编辑器的单独窗口将弹出:最初选择提交、重新编写提交消息(无论是为了重新编写还是压缩提交)等。


3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接