我正在向一个开发团队介绍git,我发现gitk是一个了不起的工具。这也很难理解,因为理解gitk需要理解git历史和查看器工具本身。
有没有人对像gitk的git历史初学者指南这样的东西有好的参考?
答案 0 :(得分:91)
我从来没有见过任何专门用于gitk的东西。从“工作原理”的角度来看,这是对它的抨击。了解一切背后的命令(或者至少大致相当)有助于学习更轻松地使用命令行工具,还可以向您展示在文档中查看gitk的更好方法!
这在最近几个主要版本中有所改变 - 我正在描述当前状态。
更新并重新加载:这可能是最令人困惑的事情。重新加载刷新所有内容,就好像您使用相同的配置启动程序一样。这意味着如果分支已被删除/重新分配,如果某些提交现在正在悬空,您将不再看到它们。另一方面,更新刷新所有信息,但仍显示之前显示的所有提交。这是一个很好的选择,如果你是变基,并希望确保你没有陷入困境 - 你可以看到原始版本和重新版本。
参考文献:非常明显。引用包括标签和分支(可能是远程的)。您可以重新阅读它们,并列出以单击特定的一个以在历史记录中显示它。
正如man page所述,gitk采用git-rev-list选项来帮助指定应显示的历史记录。这些也可以在“视图”菜单中以交互方式设置。手册页是查找有关控制视图的方式的更多信息的绝佳位置(主要在提交限制部分)。如果你之前看过git-log
,你会看到很多这个。
这里有一个键绑定列表!甜。
这提供了几种常见的git瓷器命令,通常采用通用/默认操作模式。列出它们至少可以帮助您找到正确的文档来了解它们的作用,如果您还没有这样做的话。
此时“标记提交”和相关命令应该是不言自明的。
在分支的上下文菜单中,我们有git-checkout和git-branch的-d
(删除)模式。
SHA1 ID:当前提交的哈希值。复制/粘贴到终端以对使用gitk查找的给定提交执行操作非常有用。您也可以将哈希粘贴到此处。
前进/后退按钮,行号......明显!
查找!这里的选项再次是不言自明的,但对于每个人的教育,它们类似于git-log参数:“包含”是--grep
,“触摸路径”是参数,并添加/删除字符串是-S
(镐)。
这里我们有提交消息以及git-diff的输出 - 这类似于使用git-log -p
,还有一些额外的内容:
“分支”相当于git branch -a --contains=<commit>
“Precedes”/“Follows”相当于git describe [--contains] <commit>
(git-describe)
答案 1 :(得分:23)
以下是使用屏幕截图在gitk中显示分支历史记录的介绍。
http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/
- 左上窗格显示了此存储库的一系列提交,其中最新的提交位于顶部。
- 共有三次提交,全都是Tony Stark。
- 最近一次提交的提交消息是“第三次提交”
- 有一个名为“master”的本地分支,它指向最近的提交
- 有一个远程引用分支:来自远程存储库的名为“origin”的“master”分支,它也指向最多 最近的提交
- 顶部提交旁边的黄点表示这是我工作文件夹中当前的快照(称为HEAD)
- 我突出显示了第二次提交,以便我可以在下方窗格中看到它的详细信息
- 第二次提交的提交SHA(唯一标识符,类似于subversion修订号)是
3d024dd9e4a83d8c6a9a143a68b75d4b872115a6- 右下方显示受第二次提交影响的文件列表
- 左下方显示提交详细信息,包括完整差异
- 单击右下方窗格中的文件会将左下方窗格中的差异滚动到相应的第12部分。
醇>
答案 2 :(得分:3)
新手在“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 ... ?
屏幕截图也会受到赞赏。
树实际上代表了存储库的当前状态。如果我们能够通过查看树视图来判断发生了什么,那将会是多么伟大。
由于
诉P>
答案 3 :(得分:1)
我发现gitk界面唯一有用的是漂亮的(彩色)分支概述..
如果你想要一个gui for git,请查看Windows上的TortoiseGit或Mac上的GitX或Linux上的QGit。