Tig 可不单单是 Git 的文本界面。如下是它如何加强你的平常工做流程。html
若是你使用 Git 做为你的版本控制系统,你可能已经让本身接受了 Git 是一个复杂的野兽的事实。它是一个很棒的工具,但浏览 Git 仓库可能很麻烦。所以像 Tig 这样的工具出现了。linux
来自 Tig 手册页:git
Tig 是
git
(1) 的基于 ncurses 的文本界面。它主要用做 Git 仓库浏览器,但也有助于在块级别暂存提交更改,并做为各类 Git 命令的输出分页器。github
这基本上意味着 Tig 提供了一个能够在终端中运行的基于文本的用户界面。Tig 可让你轻松浏览你的 Git 日志,但它能够作的远不止让你从最后的提交跳到前一个提交。ubuntu
这篇快速入门的 Tig 中的许多例子都是直接从其出色的手册页中拿出来的。我强烈建议你阅读它以了解更多信息。vim
sudo dnf install tig
sudo apt install tig
:brew install tig
有关更多方式,请参阅官方安装说明。浏览器
若是要浏览分支中的最新提交,请输入:bash
tig
复制代码
就是这样。这个三字符命令将启动一个浏览器,你能够在其中浏览当前分支中的提交。你能够将其视为 git log
的封装器。app
要浏览这些输出,可使用向上和向下箭头键从一个提交移动到另外一个提交。按回车键将会垂直分割窗口,右侧包含所选提交的内容。你能够继续在左侧的提交历史记录中上下浏览,你的更改将显示在右侧。使用 k
和 j
能够逐行上下浏览,-
和空格键能够在右侧上下翻页。使用 q
退出右侧窗格。ionic
搜索 tig
输出也很简单。使用 /
(向前)或 ?
(向后)在左右窗格中搜索。
这些就足以让你浏览你的提交信息了。这里有不少的键绑定,但单击 h
将显示“帮助”菜单,你能够在其中发现其导航和命令选项。你还可使用 /
和 ?
来搜索“帮助”菜单。使用 q
退出帮助。
因为 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
回到前面的菜单。
若是要查看哪些文件已被暂存,哪些文件未被跟踪,请使用 tig status
,它是 git status
的封装。
你可使用 grep
命令在文本文件中搜索表达式。命令 tig grep
容许你浏览 git grep
的输出。例如:
tig grep -i foo lib/Bar
复制代码
它会让你浏览 lib/Bar
目录中以大小写敏感的方式搜索 foo
的输出。
若是要将提交 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: opensource.com/article/19/…
做者:Olaf Alders 选题:lujun9972 译者:geekpi 校对:wxy