了解gitk的指南?[关闭]


83

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

是否有人对“使用gitk的git历史入门指南”有什么好的参考?



博客lostechies.com/joshuaflanagan/2010/09/03/…浏览了gitk的演示文稿,可能有助于理解gitk的右键菜单。
koppor

Answers:


93

我从未见过专门针对gitk的东西。从“它如何工作”的角度来看,这是一个刺痛。了解所有内容(或至少等效的命令)背后的命令有助于学习更轻松地使用命令行工具,还可以向您展示在文档中的位置,以更好地理解gitk!

文件菜单

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

  • 更新并重新加载:这可能是最令人困惑的事情。重新加载将刷新所有内容,就像使用相同配置重新启动程序一样。这意味着如果分支已被删除/重新设置,如果某些提交现在悬而未决,那么您将不再看到它们。另一方面,更新会刷新所有信息,但仍会显示以前显示的所有提交。如果您要进行基础调整并希望确保自己不会搞砸,那么这是一件很棒的事情-您可以看到原始版本和重新设置的版本。

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

观看次数

手册页所述,gitk采用git-rev-list选项来帮助指定应显示的历史记录。也可以在“视图”菜单中进行交互设置。手册页是找到有关控制视图方式的更多信息的好地方(主要在提交限制部分)。如果您以前看过git-log,将会看到很多这样的内容。

救命

这里有键绑定列表!甜。

上下文菜单

这通常在通用/默认操作模式下呈现几个通用的git Poland命令。列出它们至少可以帮助您找到合适的文档,以了解它们的功能(如果您还没有的话)!

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

在分支的上下文菜单中,我们具有git-checkout-dgit-branch的(删除)模式。

中段

  • SHA1 ID:当前提交的哈希。对于将内容复制/粘贴到终端以对您使用gitk查找的给定提交执行操作非常有用。您也可以将哈希值粘贴到此处。

  • 前进/后退按钮,行号...显而易见!

  • 找!这里的选项还是很容易解释的,但是对于每个人的教育,它们都类似于git-log参数:“ containing”为--grep,“ touching path”为参数,添加/删除字符串为-S(pickaxe)。

消息/差异窗格

这里我们有提交消息以及git-diff的输出-这有点像using git-log -p,有点额外:

  • “分支”等同于 git branch -a --contains=<commit>

  • “ Precedes” /“ Follows”等效于git describe [--contains] <commit>git-describe


对于gitk菜单命令来说足够公平了,为此+1。您在“ gitk”部分上做得很好,但是我确实希望对gitk和历史结合进行一些解释。
krosenvold

我想给这个更好的答案!我想我对git历史记录的解释不太清楚。分支和合并的概念需要解释吗?提交的事实直接取决于其哈希中的先前提交吗?似乎一旦您从屏幕上字面上看到了历史记录,就没有太多要解释的内容了。
卡斯卡贝尔

对不起,也许我很钝,但是我不知道如何使用gitkgit commit -a甚至git add是gitk。有什么我想念的吗?
ubershmekel,2012年

2
@ubershmekel gitk不会做任何事情;如果您要给他们一个GUI,则内置的是git gui。不过,这个问题与gitk有关,而gitk本质上是一个历史浏览工具(带有一些分支操作)。
卡斯卡贝尔2012年

24

这是gitk中分支历史记录可视化的介绍和屏幕截图。

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

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

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

截图也将不胜感激。

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

谢谢

v。


1
4. ...一个分支,6. ...根本不做,因为它只是对现有提交进行重新排序
厘定

1

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

如果要git的gui,请在Windows上检查TortoiseGit,在Mac上检查GitX,在Linux上检查QGit。


4
我认为这有点仓促。当然,动作构建器很酷,但是gitk上下文菜单中的许多内置东西都缺少了。gitk提供了一种非常简单的方式来通过视觉反馈来操作分支,这对于新用户特别有用。
卡斯卡贝尔

1
我有点喜欢cli,但有时我调用gitk只是为了查看分支和合并。我不建议新用户使用gitk界面。
戴维·兰德曼

奇怪的是,我认为你们俩都是正确的。
innaM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.