git gui 为分支名称创建自定义快捷方式

git gui create custom shortcut for branch name

我刚刚意识到我所有的 git 提交消息都是以我当前正在使用的分支的名称开始的。这又是我正在处理的问题编号。如果有一个键盘快捷键类似于刚刚打印当前分支名称的退出快捷键,那将非常方便。

我查看了 C:\Program Files\Git\mingw64\libexec\git-core\git-gui.tcl(是的,我在 Windows :-( ) 但我完全迷路了。我在这个文件夹上快速 grep,但是我找不到 do_signoff 命令的定义位置(所以我可以尝试复制它)。

所以我的问题是:如何实现将当前分支名称放入提交消息中的自定义键盘快捷键?

谢谢!

好的,知道了。

克隆 git-gui 仓库,像这样:

git clone git://repo.or.cz/git-gui.git

将以下内容添加到 git-gui\lib\commit.tcl

proc do_branch_name {} {
    global ui_comm
    global current_branch
    if {$current_branch eq {}} return

    set sob "$current_branch"
    set last [$ui_comm get {end -1c linestart} {end -1c}]
    if {$last ne $sob} {
        $ui_comm edit separator
        if {$last ne {}
            && ![regexp {^[A-Z][A-Za-z]*-[A-Za-z-]+: *} $last]} {
            $ui_comm insert end "\n"
        }
        $ui_comm insert end "$sob:"
        $ui_comm edit separator
        $ui_comm see end
    }
}

要将 CTRL+b 绑定为键盘快捷键,请将以下内容添加到 Git\mingw64\libexec\git-core\git-gui.tcl

bind .   <$M1B-Key-b> do_branch_name

您仍然需要重新生成 tclIndex do tcl 实际上找到了您的新函数。在 git-gui repo 文件夹中,执行

make lib/tclIndex

这应该会创建 git-gui\lib\tclIndex 文件。

C:\Program Files\Git\mingw64\share\git-gui\lib\commit.tcl替换为git-gui\lib\commit.tcl

C:\Program Files\Git\mingw64\share\git-gui\lib\tclIndex替换为git-gui\lib\tclIndex

现在,如果您按 CTRL+b,它会将当前分支的名称放在提交消息中 window。

干杯!