24

作为前bzr用户和新手,git我正在尝试为git blame类似于bzr qannotate. 后者有2个主要观点:

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

截屏: 在此处输入图像描述

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

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

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

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

4

7 回答 7

10

tigFTW!

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

于 2012-11-21T23:01:37.960 回答
5

更简单的方法可能是git gui blame <arguments>. 您可以使用git gui --help有关参数的更多信息。这里是官方来源

于 2017-02-28T08:11:58.127 回答
3

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

于 2012-11-21T22:52:23.187 回答
2

查看Git Extensions,看看这是否是您正在寻找的。

于 2013-06-04T20:52:02.353 回答
1

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

于 2012-11-21T12:02:12.613 回答
1

git blametool

我写了一个简单的包装器git blame,效果很好。我称之为git blametool在我的 eRCaGuy_dotfiles 存储库中获取它。调用会在您选择的“blametool”中git blametool打开git blame输出——它可以是任何文本编辑器。vim文本编辑器emacs的示例包括:gedit、、、、、nanoSublime 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,默认情况下它在 Ubuntu上),现在您可以访问,它可以简单地运行为.~/bingit-blametoolgit 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 存储库中,运行:

git blametool useful_scripts/git-diffn.sh

你会看到这样的东西: 在此处输入图像描述

让我们深入研究。在第 8 行,我看到了 commit hash 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

它在 Sublime Text 3 中打开了git blame第三个选项卡。现在我看到了: 在此处输入图像描述

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

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

这就是我所看到的: 在此处输入图像描述

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

替代品git blametool

以下是一些替代方案:

  1. GitHub
    1. 只需导航到 GitHub 上的存储库中的文件,然后单击“Blame”链接,如下所示在此处输入图像描述.
    2. 您现在将git blame在 GitHub 中看到像这样的漂亮视图。请注意,您可以单击这些时髦的窗口图标以进一步了解git blame历史:在此处输入图像描述. 例如,单击上图中的那个就像 running 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 责备——之前的提交?
  2. [我的回答] Windows 上使用 Meld 的 Git 合并工具

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

于 2021-03-02T05:07:03.377 回答
0

有点晚了,但GitKraken 很好地支持历史责备

于 2017-12-01T01:26:53.820 回答