0


成为git砖家(2): gitk 介绍

大家好,我是白鱼。这篇我们介绍 gitk。

gitk 和 fork 界面对比

当我们在 macOS 上执行

brew install git

后, 得到了 git 命令行工具。 然而这条命令并不会安装

gitk

.

gitk

是 git 自带的图形化界面工具,也可以称为“穷人版 fork”:

在这里插入图片描述
同一个 repo, fork 的界面是:
在这里插入图片描述
实话说, gitk 确实没有 fork 好看, 但是基本功能还是很相似:查看 commit history 的树状图, 查看每个 commit 修改的文件内容、文件列表等。 由于 gitk 免费,并且在 windows, linux, macos 都可用, 不得不说有时候它是最佳选择。

macOS 安装 gitk

brew install git-gui

是的,你没看错, 是

git-gui

.

git 官方对于 gitk 的介绍

实际上是来自 pro git 第二版的附录:
https://git-scm.com/book/zh/v2/附录-A%3A-在其它环境中使用-Git-图形界面

如果你读完了本书,那就已经掌握了很多在命令行中使用 Git 的知识了。 你可以用它来处理本地文件,通过网络连接到他人的仓库,以及高效地与他人协同工作。 不过故事到这儿还没结束。Git 通常还会作为一个组件在更大的生态系统中使用, 而终端并不总是最佳的使用方式。现在我们来看看 Git 在其它环境中的使用, 以及其它应用(包括你的应用)是如何与 Git 协同使用的。

当给公司新人 review code,针对 git commit history 出现了非线性提交记录、扰乱了被提交代码本身时,使用

gitk

可视化的查看 commit tree, 表直观。

gitk 是一个历史记录的图形化查看器。 你可以把它当作是基于 git log 和 git grep 命令的一个强大的图形操作界面。 当你需要查找过去发生的某次记录,或是可视化查看项目历史的时候,你将会用到这个工具。

gitk 使用指南

1. 查看 git commit 树

那么

gitk

相比于

git log --graph

命令, 有啥不一样么?是的,图形界面调整字体大小,比终端明显方便的,gitk能更清晰的从 commit tree 看出问题

https://github.com/xylcbd/EasyCNN 仓库为例,左图是执行

git log --graph --pretty=oneline

得到的内容,右图是执行

gitk

后进入图形界面看到的内容(鼠标稍微调整了下各个自窗口大小)。显然,左图什么问题都看不出来, 右图很明显看到了橙黄色区域里的commit和底部红色箭头指向的commit重复了:
在这里插入图片描述

具体到两次 “initialize repo.” 的commit,我们从 gitk 分别查看提交时间和作者:
在这里插入图片描述
在这里插入图片描述
可以看到作者、提交时间完全一样。

2. 查看某一段历史记录

gitk

执行的是完整的 commit tree 的查看, 而如果只对某一段 git commit 历史记录感兴趣, 可以只查看这一段的。

例如我们只对

refactoring framework. add MSE loss function.

以及它之前的commit感兴趣,这一段是完全线性的、没有分叉和合并节点的:
在这里插入图片描述
我们看到对应的 commit hash 值是 d065024 开头, 因此关掉

gitk

, 在命令行重新打开

gitk

时增加指定 commit hash:

# 格式: gitk <想要查看的最后一个commit>
gitk d065024

在这里插入图片描述

3. gitk 默认查看的是当前分支

仍然是以一团乱麻的 git commit history 的 EasyCNN 仓库为例子,我们发现在

update digit_data_sample.

这次 commit 之前都还挺正常的, 因此从这次 commit 切出 dev 分支:

git checkout -b dev 12c4dca

再用

gitk

查看: 发现界面很清晰了:
在这里插入图片描述

4. gitk 查看所有分支

gitk --all

上述命令查看所有分支的 commit history:

在这里插入图片描述

5. gitk 查看某个目录的 commit 历史记录

用法:

gitk <目录名>

例如

gitk src![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/2cf41f9a6fd04d3ab461d58e6b683faa.png)

在这里插入图片描述

6. gitk 查看某个文件的 commit 历史记录

gitk <文件名>

例如

gitk README.md

在这里插入图片描述

结语

gitk

相对于纯粹的命令行还是有明显优势的。 不过,它没法在图形界面忽略或显示不同的分支、remote, 显示文件树时也没有很好看的 icon, 没法和

fork

这样的后起之秀相比较。 但作为一个基本的 git gui工具,它是合格的,并且是跨平台的,值得掌握使用。

标签: git

本文转载自: https://blog.csdn.net/baiyu33/article/details/140738338
版权归原作者 baiyu33 所有, 如有侵权,请联系我们删除。

“成为git砖家(2): gitk 介绍”的评论:

还没有评论