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

时间:2019-02-22 16:40:51

标签: git branch

我才刚刚意识到,我所有的git commit消息都是以我当前正在使用的分支的名称开头的。依次是我正在处理的问题号。对于我来说,拥有一个类似于刚刚打印当前分支名称的注销快捷方式的键盘快捷方式将非常方便。

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,知道了。

克隆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,以便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,它将把当前分支的名称放置在提交消息窗口中。

干杯!