【问题标题】:Is there git blame gui similar to bzr qannotate?是否有类似于 bzr qannotate 的 git blame gui?
【发布时间】:2012-11-09 13:03:02
【问题描述】:

作为bzr 的前用户和git 的新手,我正在尝试为git blame 找到类似于bzr qannotate 的良好GUI 工具。后者有2个主要观点:

  1. 带有简短注释信息的文件内容查看器(谁,在哪个修订版本中更改了行)+ 基于提交者 ID 和更改时间的背景着色。
  2. 文件日志查看器:当我单击文件内容中的行时,我可以看到该行更改时的修订以及有关它的所有日志信息。

截图:

我看到 XCode IDE 内置了类似的东西,虽然它在编辑器窗口中,因此不是很方便。

到目前为止,我已经尝试过 GitX 0.7.1 和 Mac 版 GitHub - 它们都没有“责备”。

我刚刚检查了适用于 Mac 的 SourceTree,虽然它有责备支持,但它相当简陋,显示与命令行 git blame 几乎相同,尽管我可以双击该行查看相应的修订和更改在另一个窗口。这仍然不如bzr qannotate

还有其他我可以使用的 GUI 工具吗?

【问题讨论】:

  • 嗨 bialix!已经很久了!不幸的是,我认为 git 没有像 QBzr 这样好的东西。 :-( 你们有一套 优秀的 工具。我一直渴望 Git 的等价物。
  • 你也可以看看 Tower,虽然它很贵。

标签: git bazaar blame


【解决方案1】:

tigFTW!

t 你会得到树视图。然后,按 B 会显示突出显示文件的 git blame

【讨论】:

    【解决方案2】:

    更简单的方法可能是git gui blame <arguments>。您可以使用git gui --help 获取有关参数的更多信息。 Here官方出处

    【讨论】:

      【解决方案3】:

      git gui 具有此功能,但还不够完善。转到“存储库”->“浏览主文件”(或“浏览分支文件”以获得不同的分支)-> 双击文件名。它是基本的,目前似乎没有太多可配置性,但它很实用。

      【讨论】:

      • 或者在 gitk 中(至少是 msysgit 自带的)右键点击 diff 视图中的一行,然后选择“Show origin of this line”
      • @Mr_and_Mrs_D 多么棒的功能。 msysgit 带有 Sourcetree。谢谢。
      【解决方案4】:

      查看Git Extensions 看看是否是您要查找的内容。

      【讨论】:

      • 究竟如何访问其中的责备视图?
      • 请注意,此工具仅适用于 Windows。它不适用于 Linux 或 Mac。有一些旧的、不详细的构建说明for Linux for an old version of it here,但作为 Linux 用户,我什至不会尝试它,因为我怀疑这将是一个永无止境的问题兔子洞。我还可以使用其他选项,例如我在“useful_scripts”目录中的 eRCaGuy_dotfiles 存储库中围绕 git blame 编写的基本 git blametool 包装器。
      【解决方案5】:

      Aptana StudioSublimeTextTextMate 的可视化效果与您所拥有的类似,但没有颜色。您可以配置emacsvim 以显示彩色版本。

      【讨论】:

        【解决方案6】:

        git blametool

        我围绕git blame 编写了一个简单的包装器,效果很好。我称之为git blametool。得到它in my eRCaGuy_dotfiles repo here。调用git blametool 在您选择的“blametool”中打开git blame 输出——它可以是any 文本编辑器。文本编辑器的示例包括:vimemacsgeditnano、Sublime Text 3(subl,默认值,也是我的首选)等。

        安装

        有关最新的安装说明,请参阅git-blametool.sh 本身顶部内的 cmets。有很多方法可以做到这一点,但这里有一些可能的安装说明:

        mkdir ~/dev  # make development dir
        cd ~/dev
        git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
        cd eRCaGuy_dotfiles/useful_scripts
        # make symbolic link to "git-blametool.sh" inside ~/bin
        mkdir -p ~/bin 
        ln -si "${PWD}/git-blametool.sh" ~/bin/git-blametool
        

        关闭并重新打开您的终端。假设~/bin 是您的PATH 的一部分(如果您创建~/bin 目录然后注销并重新登录,它默认在Ubuntu 上),现在您可以访问git-blametool,它可以简单地运行作为git blametool

        运行 git blametool -h 以获得完整的帮助菜单。

        设置你的 blametool 编辑器(详见git blametool -h):

        # set your blametool editor as Sublime Text 3 (its command-line executable is 'subl'):
        git config --global blametool.editor subl
        
        # Other popular choices:
        git config --global blametool.editor vim
        git config --global blametool.editor emacs
        git config --global blametool.editor nano
        git config --global blametool.editor gedit
        git config --global blametool.editor leafpad
        

        如果没有,请获取 Sublime Text 3:https://www.sublimetext.com/3

        安装 Git 插件,以便获得“git blame”语法高亮:Ctrl + Shift + P --> "Package Control: Install Package" --> 输入 "Git" 并选择那个包。

        用法

        现在运行git blametool!它是git blame 的包装器,因此它接受git blame 接受的任何 选项!

        示例用法:

        git blametool -h  # help menu
        git blametool somefile.c
        git blametool somebranch somefile.c
        
        

        演示

        在我上面克隆的eRCaGuy_dotfiles repo 中,运行:

        git blametool useful_scripts/git-diffn.sh
        

        您会看到如下内容:

        让我们深入挖掘。在第 8 行,我看到了提交哈希 68e96491,所以我在 Sublime Text 中双击它并复制它。现在我可以在终端中运行它了:

        git blametool 68e96491 useful_scripts/git-diffn.sh
        

        现在我看到了:

        注意现在在 Sublime Text 3 中打开了 2 个选项卡,每个选项卡都显示来自 git blame 的提交哈希作为文件名的一部分。我想更深入地挖掘,所以我从第一行复制哈希并运行:

        git blametool c294f965 useful_scripts/git-diffn.sh
        

        它将git blame 打开到 Sublime Text 3 的第三个选项卡中。现在我看到了:

        我可以轻松地点击 3 个标签。凉爽的。现在想象一下我找到了我正在寻找的东西,所以为了查看并排比较,我运行它来查看meld 中的提交哈希c294f96568e96491 之间的比较:

        git difftool 68e96491 68e96491 useful_scripts/git-diffn.sh
        

        这就是我所看到的:

        如果您没有设置meld,请按照我在此处的回答中的说明操作:Git mergetool with Meld on Windows

        git blametool 的替代方案

        这里有几个选择:

        1. GitHub
          1. 只需导航到 GitHub 上的存储库中的文件,然后单击“Blame”链接as shown here:
          2. 您现在将在 GitHub 中看到一个漂亮的 git blame 视图,如下所示。请注意,您可以单击这些时髦的窗口图标以进一步返回 git blame 历史记录:。例如,单击上图中的那个就像运行git blametool 68e96491 useful_scripts/git-diffn.sh,因为该行的git blametool 输出显示68e96491 是它的提交哈希。
        2. “Git Blame”Sublime Text 3 包。我更喜欢我的git blametool,但这也是一个选项:
          1. https://packagecontrol.io/packages/Git%20blame
          2. https://github.com/frou/st3-gitblame

        另见

        1. 非常有用!查看单个文件的编辑历史!
          git log -p somefile.c
          
          灵感来源:Git blame -- prior commits?
        2. [我的回答]Git mergetool with Meld on Windows

        关键词:git blametool;在您选择的编辑器中打开git blame

        【讨论】:

          【解决方案7】:

          有点晚了,不过GitKraken很好地支持historyblame

          【讨论】:

            猜你喜欢
            • 2011-08-25
            • 2019-12-20
            • 1970-01-01
            • 1970-01-01
            • 2015-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-12
            相关资源
            最近更新 更多