git blametool
我写了一个简单的包装器来使用 git blame
,效果还不错。我称之为 git blametool
。你可以在我的 eRCaGuy_dotfiles 仓库中找到它这里。调用 git blametool
将会在你选择的“blametool”中打开 git blame
的输出结果--这个“blametool”可以是任何文本编辑器。一些例子包括: vim
、emacs
、gedit
、nano
、Sublime Text 3(subl
,默认和我首选的)等。
安装
有关最新的安装说明,请参见git-blametool.sh文件顶部的注释。有很多方法可以做到这一点,但以下是一些可能的安装说明:
mkdir ~/dev
cd ~/dev
git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
cd eRCaGuy_dotfiles/useful_scripts
mkdir -p ~/bin
ln -si "${PWD}/git-blametool.sh" ~/bin/git-blametool
关闭并重新打开您的终端。假设
~/bin
是您的
PATH
的一部分(如果您在Ubuntu上默认创建了
~/bin
目录,然后退出并重新登录),现在您可以访问
git-blametool
,只需简单地运行
git blametool
。
运行
git blametool -h
以获取完整的帮助菜单。
设置您的blametool编辑器(有关详细信息,请参阅
git blametool -h
)。
git config --global blametool.editor subl
git config --global blametool.editor
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 config --global blametool.editor code
如果你还没有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
git blametool somefile.c
git blametool somebranch somefile.c
演示
在你刚刚克隆的eRCaGuy_dotfiles存储库中,运行以下命令:
git blametool useful_scripts/git-diffn.sh
你会看到类似这样的东西:
让我们深入挖掘。在第8行,我看到提交哈希值
68e96491
,所以我在Sublime Text中双击它并复制它。现在我可以在终端中运行这个命令:
git blametool 68e96491 useful_scripts/git-diffn.sh
现在我明白了:
请注意,Sublime Text 3 中现在打开了两个选项卡,每个选项卡都显示了作为文件名一部分的 git blame 的提交哈希。我想要深入挖掘,所以我从第一行复制了哈希并运行:
git blametool c294f965 useful_scripts/git-diffn.sh
它在Sublime Text 3中将这个`git blame`打开为第三个标签。现在我看到了这个:
我可以轻松地在这三个标签之间点击。很酷。现在想象一下,我找到了我要找的东西,所以为了进行并排比较,我运行了以下命令来查看`meld`中提交哈希`c294f965`和`68e96491`之间的比较:
git difftool 68e96491 68e96491 useful_scripts/git-diffn.sh
这是我看到的内容:
如果你没有设置meld
,请按照我的回答中的指示进行操作:Windows上使用Meld进行Git合并工具设置。
git blametool
的替代方案
以下是几个替代方案:
- GitHub
- 只需在 GitHub 上的存储库中导航到一个文件,并点击“Blame”链接 如图所示:。
- 现在您将看到类似于 GitHub 中的漂亮的
git blame
视图,如下所示。请注意,您可以点击这些花哨的窗口图标来深入了解更早的 git blame
历史记录:。例如,点击上面图片中的那个图标相当于运行 git blametool 68e96491 useful_scripts/git-diffn.sh
,因为该行的 git blametool
输出显示 68e96491
是其提交哈希。
- "Git Blame" Sublime Text 3 package。我更喜欢我的
git blametool
,但这也是一种选择:
- https://packagecontrol.io/packages/Git%20blame
- https://github.com/frou/st3-gitblame
另请参阅
非常有用!查看单个文件的编辑历史!
git log -p somefile.c
灵感来自:
如何使用git blame查看先前提交?
[我的答案]
在Windows上使用Meld进行Git合并工具
关键词:`git blametool`;在您选择的编辑器中打开`git blame`。