如何使用 Tig 浏览 Git 日志

Tig 可不仅仅是 Git 的文本界面。以下是它如何增强你的日常工作流程。

Tig 可不仅仅是 Git 的文本界面。以下是它如何增强你的日常工作流程。

如何使用 Tig 浏览 Git 日志

如果你使用 Git 作为你的版本控制系统,你可能已经让自己接受了 Git 是一个复杂的野兽的事实。它是一个很棒的工具,但浏览 Git 仓库可能很麻烦。因此像 Tig 这样的工具出现了。

来自 Tig 手册页

Tig 是 git(1) 的基于 ncurses 的文本界面。它主要用作 Git 仓库浏览器,但也有助于在块级别暂存提交更改,并作为各种 Git 命令的输出分页器。

这基本上意味着 Tig 提供了一个可以在终端中运行的基于文本的用户界面。Tig 可以让你轻松浏览你的 Git 日志,但它可以做的远不止让你从最后的提交跳到前一个提交。

Tig screenshot

这篇快速入门的 Tig 中的许多例子都是直接从其出色的手册页中拿出来的。我强烈建议你阅读它以了解更多信息。

安装 Tig

  • Fedora 和 RHEL: sudo dnf install tig
  • Ubuntu 和 Debian: sudo apt install tig
  • MacOS: :brew install tig

有关更多方式,请参阅官方安装说明

浏览当前分支中的提交

如果要浏览分支中的最新提交,请输入:


tig

就是这样。这个三字符命令将启动一个浏览器,你可以在其中浏览当前分支中的提交。你可以将其视为 git log 的封装器。

要浏览这些输出,可以使用向上和向下箭头键从一个提交移动到另一个提交。按回车键将会垂直分割窗口,右侧包含所选提交的内容。你可以继续在左侧的提交历史记录中上下浏览,你的更改将显示在右侧。使用 kj 可以逐行上下浏览,- 和空格键可以在右侧上下翻页。使用 q 退出右侧窗格。

搜索 tig 输出也很简单。使用 / (向前)或 ? (向后)在左右窗格中搜索。

Searching Tig

这些就足以让你浏览你的提交信息了。这里有很多的键绑定,但单击 h 将显示“帮助”菜单,你可以在其中发现其导航和命令选项。你还可以使用 /? 来搜索“帮助”菜单。使用 q 退出帮助。

Tig Help

浏览单个文件的修改

由于 Tig 是 git log 的封装器,它可以方便地接受可以传递给 git log 的相同参数。例如,要浏览单个文件的提交历史记录,请输入:


tig README.md

将其与被封装的 Git 命令的输出进行比较,以便更清楚地了解 Tig 如何增强输出。


git log README.md

要在原始 Git 输出中包含补丁,你可以添加 -p 选项:


git log -p README.md

如果要将提交范围缩小到特定日期范围,请尝试以下操作:


tig --after="2017-01-01" --before="2018-05-16" -- README.md

再一次,你可以将其与原始的 Git 版本进行比较:


git log --after="2017-01-01" --before="2018-05-16" -- README.md

浏览谁更改了文件

有时你想知道谁对文件进行了更改以及原因。命令:


tig blame README.md

器本质上是 git blame 的封装。正如你所期望的那样,它允许你查看谁是编辑指定行的最后一人,它还允许你查看到引入该行的提交。这有点像 vim 的 vim-fugitive 插件提供的 :Gblame 命令。

浏览你的暂存区

如果你像我一样,你可能会在你的暂存区做了许多修改。你很容易忘记它们。你可以通过以下方式查看暂存处中的最新项目:


git stash show -p stash@{0}

你可以通过以下方式找到第二个最新项目:


git stash show -p stash@{1}

以此类推。如果你在需要它们时调用这些命令,那么你会有比我更清晰的记忆。

与上面的 Git 命令一样,Tig 可以通过简单的调用轻松增强你的 Git 输出:


tig stash

尝试在有暂存的仓库中执行此命令。你将能够浏览并搜索你的暂存项,快速浏览你的那些修改。

浏览你的引用

Git ref 是指你提交的东西的哈希值。这包括文件和分支。使用 tig refs 命令可以浏览所有的 ref 并深入查看特定提交。


tig refs

完成后,使用 q 回到前面的菜单。

浏览 git 状态

如果要查看哪些文件已被暂存,哪些文件未被跟踪,请使用 tig status,它是 git status 的封装。

Tig status

浏览 git grep

你可以使用 grep 命令在文本文件中搜索表达式。命令 tig grep 允许你浏览 git grep 的输出。例如:


tig grep -i foo lib/Bar

它会让你浏览 lib/Bar 目录中以大小写敏感的方式搜索 foo 的输出。

通过标准输入管道输出给 Tig

如果要将提交 ID 列表传递给 Tig,那么必须使用 --stdin 标志,以便 tig show 从标准输入读取。否则,tig show 会在没有输入的情况下启动(出现空白屏幕)。


git rev-list --author=olaf HEAD | tig show --stdin

添加自定义绑定

你可以使用 rc 文件自定义 Tig。以下是如何根据自己的喜好添加一些有用的自定义键绑定的示例。

在主目录中创建一个名为 .tigrc 的文件。在你喜欢的编辑器中打开 ~/.tigrc 并添加:

“`

应用选定的暂存内容

bind stash a !?git stash apply %(stash)

丢弃选定的暂存内容

bind stash x !?git stash drop %(stash)
“`

如上所述,运行 tig stash 以浏览你的暂存。但是,通过这些绑定,你可以按 a 将暂存中的项目应用到仓库,并按 x 从暂存中删除项目。请记住,你要在浏览暂存列表时,才能执行这些命令。如果你正在浏览暂存,请输入 q 退出该视图,然后按 ax 以获得所需效果。

有关更多信息,你可以阅读有关 Tig 键绑定

总结

我希望这有助于演示 Tig 如何增强你的日常工作流程。Tig 可以做更强大的事情(比如暂存代码行),但这超出了这篇介绍性文章的范围。这里有足够的让你置身于危险的信息,但还有更多值得探索的地方。


via: https://opensource.com/article/19/6/what-tig

作者:Olaf Alders 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2019/07/07/%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8-tig-%e6%b5%8f%e8%a7%88-git-%e6%97%a5%e5%bf%97/

Like (0)
eason的头像eason
Previous 2019年7月7日
Next 2019年7月8日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信