git blametool
我写了一个简单的包装器git blame
,效果很好。我称之为git blametool
。在我的 eRCaGuy_dotfiles 存储库中获取它。调用会在您选择的“blametool”中git blametool
打开git blame
输出——它可以是任何文本编辑器。vim
文本编辑器emacs
的示例包括:gedit
、、、、、nano
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
,默认情况下它在 Ubuntu上),现在您可以访问,它可以简单地运行为.~/bin
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 存储库中,运行:
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 hashc294f965
和68e96491
in之间的比较meld
:
git difftool 68e96491 68e96491 useful_scripts/git-diffn.sh
这就是我所看到的:
如果您还没有meld
设置,请按照我在此处的回答中的说明进行操作:Git mergetool with Meld on Windows。
替代品git blametool
以下是一些替代方案:
- GitHub
- 只需导航到 GitHub 上的存储库中的文件,然后单击“Blame”链接,如下所示:.
- 您现在将
git blame
在 GitHub 中看到像这样的漂亮视图。请注意,您可以单击这些时髦的窗口图标以进一步了解git blame
历史:. 例如,单击上图中的那个就像 running git blametool 68e96491 useful_scripts/git-diffn.sh
,因为该git blametool
行的输出显示68e96491
的是它的提交哈希。
- “Git Blame”Sublime Text 3 包。我更喜欢我的
git blametool
,但这也是一个选择:
- https://packagecontrol.io/packages/Git%20blame
- https://github.com/frou/st3-gitblame
也可以看看
- 很有用!查看单个文件的编辑历史!
git log -p somefile.c
灵感来源:Git 责备——之前的提交?
- [我的回答] Windows 上使用 Meld 的 Git 合并工具
关键词:git blametool
; git blame
在您选择的编辑器中打开