第50.1节:gitk 和 git-gui

安装 Git 时,你还会获得其视觉工具 gitk 和 git-gui。

gitk 是一个图形化的历史查看器。可以将其视为一个强大的 GUI 壳层,用于 git log 和 git grep。当你试图查找过去发生的事情,或可视化项目历史时,这就是一个非常有用的工具。

gitk 最容易从命令行调用。只需进入一个 Git 仓库,然后输入:

$ gitk [git log options]

gitk 接受许多命令行选项,其中大多数会传递给底层的 git log 动作。其中最有用的选项之一是 --all 标志,它告诉 gitk 显示任何引用可达的提交,而不仅仅是 HEAD。gitk 的界面如下图所示:

图 1-1. gitk 历史查看器。

顶部看起来有点像 git log --graph 的输出;每个点代表一个提交,线条代表父子关系,引用显示为彩色方块。黄色点代表 HEAD,红色点代表尚未成为提交的更改。底部是所选提交的视图;左侧是评论和补丁,右侧是摘要视图。中间是一系列用于搜索历史的控件。

你可以通过右键单击分支名称或提交信息来访问许多与 git 相关的功能。例如,切换到不同分支或选择性地检出一个提交只需单击一下即可。

git-gui 主要是一个用于创建提交的工具。它同样最容易从命令行调用:

$ git gui

它的界面如下图所示:

图 1-2. git-gui 提交工具。

左侧是索引;未暂存的更改在顶部,已暂存的更改在底部。你可以通过单击它们的图标将整个文件在两种状态之间移动,或者通过单击文件名来选择一个文件进行查看。

右上角是 diff 视图,显示当前选中文件的更改。你可以在该区域右键单击以暂存个别代码块(或个别行)。

右下角是消息和操作区域。在文本框中输入你的提交信息,然后单击“提交”以执行类似 git commit 的操作。你还可以选择通过选择“修改”单选按钮来修改上一个提交,这将用上一个提交的内容更新“已暂存更改”区域。然后你可以简单地暂存或取消暂存一些更改,更改提交信息,再次单击“提交”即可用新提交替换旧提交。

gitk 和 git-gui 是面向任务的工具示例。它们各自针对特定目的(查看历史和创建提交)进行了定制,并省略了对该任务不必要的功能。

参考来源

https://git-scm.com/book/en/v2/Git-in-Other-Environments-Graphical-Interfaces

第50.2节:GitHub Desktop

第50.3节:Git Kraken

第50.4节:SourceTree

第50.5节:Git Extensions

第50.6节:SmartGit