如何使用 git gui 进行变基?
Posted
技术标签:
【中文标题】如何使用 git gui 进行变基?【英文标题】:How to do a rebase with git gui? 【发布时间】:2011-06-17 08:26:02 【问题描述】:我知道如何从命令行做一个 git rebase,但是你如何用官方的git-gui 来做呢?
【问题讨论】:
【参考方案1】:将此添加到主目录中的 .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
【讨论】:
到 cmd 行(第 2 行),需要添加 $REVISION,即 cmd = git rebase $REVISION。否则,谢谢!我不知道这种能力存在。 交互式变基也是可能的,您只需将 env-var EDITOR 设置为 gui 编辑器。我认为添加到您的答案中的编辑过多,因此我创建了自己的答案-随时将我的答案添加到您的答案中。 出现了一些窗口,但是在这些字段中输入什么? 我发现 Jim Raden 的评论是正确的,需要 $REVISION 而不是 $VERSION。也许 Ted Percival 可以编辑他的答案?我会这样做,但我不确定 $REVISION 是否普遍正确,或特定于平台或其他什么。【参考方案2】:在git-gui
:
-
转到
Tools -> Add
,然后输入自定义命令,即git rebase master
。
选择全局添加 使该选项出现在所有存储库中。 (它会为您将配置写入您的~/.gitconfig
,正如his answer 中提到的@Ted-Percival)。
【讨论】:
值得指出的是,您的本地 Git 数据库必须与您希望变基的分支的更改保持同步。如果本地master
在您分支后没有更新,git rebase master
什么也不做!要解决此问题,请首先从命令行运行 git checkout master; git pull; git checkout MY_BRANCH
,或将 git-gui
命令更改为 git rebase origin\master
。【参考方案3】:
您可以使用git gui
进行完整的交互式变基,包括提交选择、改写和冲突解决!除了 Ted Percival 的回答,将此添加到您的 ~/.gitconfig
:
[guitool "Rebase interactive"]
cmd = EDITOR=gvim git rebase -i $REVISION
revprompt = yes
您必须使用图形编辑器 - 普通的旧 vim
不起作用,但 gvim
可以。您可以使用任何 gui 编辑器,例如我使用 nedit
。该编辑器的单独窗口会在您需要输入任何内容时弹出:最初选择提交、重新编写提交消息(无论是重新编写还是压缩提交)等。
【讨论】:
【参考方案4】:git gui
可用于在执行rebase --interactive
时将文件添加到索引(如git rebase
man page、GitHub rebase help page 或此git rebase interactive tip article 中提到的),但不能执行rebase
本身。
(除非如您所见,您在工具部分自己定义命令)
【讨论】:
以上是关于如何使用 git gui 进行变基?的主要内容,如果未能解决你的问题,请参考以下文章