是否有类似于bzr qannotate的git blame gui?

时间:2012-11-21 09:54:17

标签: git bazaar blame

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

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

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

    到目前为止,我已经尝试过GitX 0.7.1和M​​ac的GitHub - 他们都没有“责备”。

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

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

7 个答案:

答案 0 :(得分:5)

tig FTW!

t 即可获得树状视图。然后,按 B 会显示突出显示文件的git blame

答案 1 :(得分:3)

git gui具有此功能,但它并没有那么完美。转到“存储库” - > “浏览主文件”(或“浏览分支文件”以获取不同的分支) - >双击文件名。它是基本的,此时似乎没有很多可配置性,但它是有用的。

答案 2 :(得分:3)

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

答案 3 :(得分:1)

Aptana Studio,SublimeText和TextMate具有类似的可视化效果,但您没有颜色。您可以配置emacsvim以显示彩色版本。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

有点迟到但GitKarken非常支持historyblame

答案 6 :(得分:0)

git blametool

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

安装

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

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 上),现在您可以访问 {{1 }},它可以简单地作为 git-blametool 运行。

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

设置您的blametool 编辑器(有关详细信息,请参阅 git blametool -h):

git blametool -h

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

安装 Git 插件,这样你就可以高亮显示“git blame”语法:Ctrl + Shift + P --> "Package Control: Install Package" --> 输入“Git”并选择那个包。

用法

现在运行# 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 !它是 git blametool 的包装器,因此它接受 git blame 接受的任何选项!

示例用法:

git blame

演示

在您刚刚在上面克隆的我的 eRCaGuy_dotfiles 存储库中,运行:

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

您会看到如下内容: enter image description here

让我们深入挖掘。在第 8 行,我看到提交哈希 git blametool useful_scripts/git-diffn.sh ,所以我在 Sublime Text 中双击它并复制它。现在我可以在我的终端中运行它:

68e96491

现在我看到了: enter image description here

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

git blame

它打开了这个 git blametool c294f965 useful_scripts/git-diffn.sh 到 Sublime Text 3 中的第三个选项卡。现在我看到了这个: enter image description here

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

meld

这是我看到的: enter image description here

如果您没有设置 git difftool 68e96491 68e96491 useful_scripts/git-diffn.sh ,请按照我在此处回答中的说明进行操作:Git mergetool with Meld on Windows

meld 的替代方案

这里有一些替代方案:

  1. GitHub
    1. 只需导航到 GitHub 上的存储库中的文件,然后点击“责备”链接 as shown hereenter image description here
    2. 您现在将在 GitHub 中看到一个不错的 git blametool 视图,如下所示。请注意,您可以单击这些时髦的窗口图标来更深入地了解 git blame 历史:enter image description here。例如,单击上图中的那个就像运行 git blame,因为该行的 git blametool 68e96491 useful_scripts/git-diffn.sh 输出显示 git blametool 是它的提交哈希。
  2. “Git Blame”Sublime Text 3 包。我可能会坚持使用 68e96491——我还没有决定,但这也是一个选择。
    1. https://packagecontrol.io/packages/Git%20blame
    2. https://github.com/frou/st3-gitblame

另见

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