我正在向一个开发团队介绍 git,我发现 gitk 是一个了不起的工具。这也很难理解,因为理解 gitk 需要理解 git 历史和查看器工具本身。
有没有人对“gitk git 历史初学者指南”之类的东西有很好的参考?
我从未见过任何专门针对 gitk 的东西。从“它是如何工作的”的角度来看,这是一个尝试。了解所有内容背后的命令(或至少通常等效的命令)有助于学习更轻松地使用命令行工具,并且还向您展示了在哪里查看文档以更好地理解 gitk!
这在最近几个主要版本中有所改变——我描述的是当前状态。
更新和重新加载:这可能是最令人困惑的事情。重新加载会刷新所有内容,就像您使用相同的配置重新启动程序一样。这意味着如果一个分支已被删除/重新定位,如果一些提交现在悬空,你就看不到它们了。另一方面,更新会刷新所有信息,但仍会显示之前显示的所有提交。如果您正在变基并且想要确保您没有搞砸,这是一个很好的使用 - 您可以看到原始版本和变基版本。
参考资料:很明显。引用包括标签和分支(可能是远程的)。您可以重新阅读它们,并列出单击特定的一个以在历史记录中显示它。
正如手册页所说,gitk 采用git-rev-list选项来帮助指定应显示的历史记录。这些也可以在“查看”菜单中以交互方式设置。手册页是查找有关控制视图的方式的更多信息的好地方(主要位于提交限制部分)。如果你以前看过git-log
,你会看到很多这样的。
这里有一个键绑定列表!甜的。
这提供了几个常见的 git瓷器命令,通常处于常见/默认操作模式。列出它们至少可以帮助您找到正确的文档以了解它们的作用,如果您还没有的话!
此时“标记提交”和相关命令应该是不言自明的。
在分支的上下文菜单中,我们有git-checkout和-d
git-branch 的(删除)模式。
SHA1 ID:当前提交的哈希。对于复制/粘贴到终端以对您使用 gitk 查找的给定提交执行操作非常有用。您也可以将哈希粘贴到此处。
前进/后退按钮,行号......很明显!
寻找!这里的选项也是不言自明的,但对于每个人的教育,它们类似于git-log参数:“包含”是--grep
,“接触路径”是参数,添加/删除字符串是-S
(pickaxe)。
这里我们有提交消息以及 git-diff 的输出 - 这有点像 using git-log -p
,还有一点额外的:
“分支”相当于git branch -a --contains=<commit>
"Precedes"/"Follows" 等价于git describe [--contains] <commit>
( git-describe )
下面用截图介绍gitk中分支历史的可视化。
http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/
- 左上窗格显示了对该存储库的一系列提交,最新的在顶部。
- 共有三个提交,全部由托尼·斯塔克(Tony Stark)提交。
- 最近一次提交的提交消息是“第三次提交”</li>
- 有一个本地分支,名为“master”,它指向最近的提交
- 有一个远程引用分支:来自名为“origin”的远程存储库的“master”分支,它也指向最近的提交
- 顶部提交旁边的黄点表示当前在我的工作文件夹中的快照(简称 HEAD)
- 我已经突出显示了第二次提交,以便我可以在下部窗格中看到它的详细信息
- 第二次提交的提交 SHA(唯一标识符,类似于 subversion 修订号)为
3d024dd9e4a83d8c6a9a143a68b75d4b872115a6- 右下角显示了受第二次提交影响的文件列表
- 左下角显示提交细节,包括完整的差异
- 单击右下窗格中的文件会将左下窗格中的差异滚动到相应的部分 12。
新手在“gitk 和历史的结合”方面真正可以使用的是具体解释如何通过查看 gitk 树视图来识别发生的事情。
据我所知 - 看树的正确方法是(当然):
1. each node is a commit
2. ultimate parent is at the bottom
3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
4. the node with 2 or more children indicates ... ?
5. merge commit node has 2 parents.
6. rebase is recognized ... ?
屏幕截图也将不胜感激。
树实际上代表了存储库的当前状态。如果我们能够通过查看树视图来判断发生了什么,那就太好了。
谢谢
五。
我发现 gitk 界面唯一有用的是漂亮(多彩)的分支概述。
如果你想要 git 的 gui,请检查 windows 上的 TortoiseGit 或 Mac 上的 GitX 或 linux 上的 QGit。