理解gitk的指南?

时间:2009-10-15 05:59:45

标签: git gitk

我正在向一个开发团队介绍git,我发现gitk是一个了不起的工具。这也很难理解,因为理解gitk需要理解git历史和查看器工具本身。

有没有人对像gitk的git历史初学者指南这样的东西有好的参考?

4 个答案:

答案 0 :(得分:91)

我从来没有见过任何专门用于gitk的东西。从“工作原理”的角度来看,这是对它的抨击。了解一切背后的命令(或者至少大致相当)有助于学习更轻松地使用命令行工具,还可以向您展示在文档中查看gitk的更好方法!

文件菜单

这在最近几个主要版本中有所改变 - 我正在描述当前状态。

  • 更新并重新加载:这可能是最令人困惑的事情。重新加载刷新所有内容,就好像您使用相同的配置启动程序一样。这意味着如果分支已被删除/重新分配,如果某些提交现在正在悬空,您将不再看到它们。另一方面,更新刷新所有信息,但仍显示之前显示的所有提交。这是一个很好的选择,如果你是变基,并希望确保你没有陷入困境 - 你可以看到原始版本和重新版本。

  • 参考文献:非常明显。引用包括标签和分支(可能是远程的)。您可以重新阅读它们,并列出以单击特定的一个以在历史记录中显示它。

浏览

正如man page所述,gitk采用git-rev-list选项来帮助指定应显示的历史记录。这些也可以在“视图”菜单中以交互方式设置。手册页是查找有关控制视图的方式的更多信息的绝佳位置(主要在提交限制部分)。如果你之前看过git-log,你会看到很多这个。

帮助

这里有一个键绑定列表!甜。

上下文菜单

这提供了几种常见的git瓷器命令,通常采用通用/默认操作模式。列出它们至少可以帮助您找到正确的文档来了解它们的作用,如果您还没有这样做的话。

  • git-diff(差异< - >选择
  • git-format-patch(制作补丁)
  • git-tag(创建代码)
  • git-diff-tree(写入提交文件,很少使用)
  • git-branch
  • git-cherry-pick
  • git-reset(重置分支到此处)这会提示您输入软,混合或硬,并简要提醒每个人做什么。在手册页上有更长的描述,但当然你必须理解索引的概念才能真正得到它。

此时“标记提交”和相关命令应该是不言自明的。

在分支的上下文菜单中,我们有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/

  
      
  1. 左上窗格显示了此存储库的一系列提交,其中最新的提交位于顶部。
  2.   
  3. 共有三次提交,全都是Tony Stark。
  4.   
  5. 最近一次提交的提交消息是“第三次提交”
  6.   
  7. 有一个名为“master”的本地分支,它指向最近的提交
  8.   
  9. 有一个远程引用分支:来自远程存储库的名为“origin”的“master”分支,它也指向最多   最近的提交
  10.   
  11. 顶部提交旁边的黄点表示这是我工作文件夹中当前的快照(称为HEAD)
  12.   
  13. 我突出显示了第二次提交,以便我可以在下方窗格中看到它的详细信息
  14.   
  15. 第二次提交的提交SHA(唯一标识符,类似于subversion修订号)是
      3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  16.   
  17. 右下方显示受第二次提交影响的文件列表
  18.   
  19. 左下方显示提交详细信息,包括完整差异
  20.   
  21. 单击右下方窗格中的文件会将左下方窗格中的差异滚动到相应的第12部分。
  22.   

答案 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 ... ?

屏幕截图也会受到赞赏。

树实际上代表了存储库的当前状态。如果我们能够通过查看树视图来判断发生了什么,那将会是多么伟大。

由于

答案 3 :(得分:1)

我发现gitk界面唯一有用的是漂亮的(彩色)分支概述..

如果你想要一个gui for git,请查看Windows上的TortoiseGit或Mac上的GitX或Linux上的QGit。