Tig 可不仅仅是 Git 的文字界面。以下是它如何增强你的日常工作流程。
-- Olaf Alders(作者)
如果你使用 Git 作为你的版本控制系统,你可能已经让自己接受了 Git 是一个复杂的野兽的事实。它是一个很棒的工具,但浏览 Git 仓库可能很麻烦。因此像 Tig 这样的工具出现了。
来自 Tig 手册页 :
Tig 是 git(1) 的基于 ncurses 的文字界面。它主要用作 Git 仓库浏览器,但也有助于在块级别暂存提交更改,并作为各种 Git 命令的输出分页器。
这基本上意味着 Tig 提供了一个可以在终端中执行的基于文字的使用者界面。Tig 可以让你轻松浏览你的 Git 日志,但它可以做的远不止让你从最后的提交跳到前一个提交。
Tig screenshot
这篇快速入门的 Tig 中的许多例子都是直接从其出色的手册页中拿出来的。我强烈建议你阅读它以了解更多资讯。
安装 Tig
Fedora 和 RHEL: sudo dnf install tigUbuntu 和 Debian: sudo apt install tigMacOS: :brew install tig有关更多方式,请参阅官方 安装说明 。浏览当前分支中的提交
如果要浏览分支中的最新提交,请输入:tig
就是这样。这个三字元命令将启动一个浏览器,你可以在其中浏览当前分支中的提交。你可以将其视为 git log 的封装器。
要浏览这些输出,可以使用向上和向下箭头键从一个提交移动到另一个提交。按回车键将会垂直分割视窗,右侧包含所选提交的内容。你可以继续在左侧的提交历史记录中上下浏览,你的更改将显示在右侧。使用 k 和 j 可以逐行上下浏览,- 和空格键可以在右侧上下翻页。使用 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 [email protected]{0}
你可以通过以下方式找到第二个最新专案:
git stash show -p [email protected]{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 退出该检视,然后按 a 或 x 以获得所需效果。
有关更多资讯,你可以阅读有关 Tig 键系结 。
总结
我希望这有助于演示 Tig 如何增强你的日常工作流程。Tig 可以做更强大的事情(比如暂存程式码行),但这超出了这篇介绍性文章的范围。这里有足够的让你置身于危险的资讯,但还有更多值得探索的地方。via: https://opensource.com/article/19/6/what-tig
作者: Olaf Alders 选题: lujun9972 译者: geekpi 校对: wxy
本文由 LCTT 原创编译, Linux中国 荣誉推出