tig介绍和使用
简单来说,tig 是 Git 的文本模式界面(text-mode interface for Git)。
官方文档对它的说明如下:
Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.
如果你使用的是 Windows 系统,那么在安装 Git 时应该已经内置安装了 tig。通常在 <Git>/usr/bin
目录下可以找到。
其他系统安装命令如下:
- MacOS:
brew install tig
- Ubuntu/Debian:
sudo apt install tig
- Fedora/RHEL:
sudo dnf install tig
tig 布局通常是这样,包含一个状态窗口(最后那行)和一个或多个视图。默认通常只显示一个视图,当然也可以分屏显示多个视图(下面对主视图的介绍中就可以看到分屏显示的情况)。
目前,tig 有 13 种视图,我们从主视图入手,因为它是 tig 的默认视图。
在终端执行 tig
命令即可进入 tig 的主视图,主视图中显示的是当前工作目录所在的 Git 仓库的提交日志。默认高亮选中第一行,即最后的日志。
注意,这是一个可滚动浏览的提交日志列表,你可以通过快捷键在列表中进行导航。其操作方式类似于 vi,如果你熟悉 vi,那么应该可以快速上手。
j
/k
键:可以让光标上下移动选中相应的提交日志行。
Enter
键:选中某条提交日志行的状态下按 Enter
键,终端窗口会被分屏,左屏仍显示提交日志列表,右屏显示被选中的提交日志的详细信息。此时,焦点会自动切换到右屏中,即j
/k
键将在右屏进行导航。
J
/K
:如果此时需要在左屏各条提交日志间进行导航,可使用 J
/K
,右屏内容会随着选中的提交日志而即时改变。
也可以使用上下方向键进行左屏导航。
Tab
键:当然,也可以按 Tab
键将焦点切换回左屏,使用 j
/k
键进行导航。
Q
/Ctrl + c
:退出 tig。
很显然,快捷键很多,而这只是一小部分。因此,通常你不可能记住所有快捷键,好在在 tig 的任一视图你都可以按下 h
键来查看帮助视图,其中完整列出了所有快捷键。
一种操作对应的快捷键通常也不止一个,因此,你不需要记住所有快捷键,只需要选择性记住适合自己习惯的那个。
按 r
键进入引用视图,该视图会显示分支、远程节点和标签。
j
/k
键:与主视图类似,上下移动光标导航。
Enter
键:类似地,分屏显示选中引用的提交日志。
C
:当焦点在引用视图上时,会询问是否执行 git checkout
命令,即切换分支;焦点在日志视图上时,会询问是否执行 git cherry-pick
命令。
按 s
/S
键进入状态视图,该视图会分组显示暂存(暂存待提交)、未暂存(修改未暂存)和不跟踪的文件。
j
/k
键:仍是上下导航。
Enter
键:如果选中的是暂存或未暂存文件,将分屏显示差异视图;如果选中的是未跟踪的文件,将分屏显示文件内容。
u
键:如果选中的是暂存文件,则会取消暂存,这可能让其回到未暂存或不跟踪的文件列表;如果选中的是未暂存或不跟踪的文件,则会将其暂存。
!
键:选中的是未暂存文件,丢弃文件修改。其他状态文件不能执行该操作。
C
:提交。
日志视图(l
):显示完整日志信息和差异统计。
差异视图(d
):显示当前工作副本与上次提交之间的差异,如果当前工作副本是干净的,则显示上次提交的更改。
树视图(t
):以目录方式展示仓库结构,并在其中导航查看文件内容。
暂存视图(c
):显示(未)暂存文件的更改以及不跟踪的文件的内容。
贮藏视图(y
):显示贮藏列表。
正则视图(g
):正则查找,匹配文件名及文本内容。
分页器视图(p
)
帮助视图(h
):键绑定快速查看帮助。