理解gitk指南?

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

有没有人有任何好的参考,像“GitGit git历史的初学者指南”?


我从来没有见过任何专门针对gitk的东西。 从“如何运作”的角度来看,这是一个刺戳。 了解所有背后的命令(或者至少基本相同)有助于学习更轻松地使用命令行工具,并且还可以显示在何处查看文档以更好地理解gitk!

文件菜单

这在过去的几个主要版本中有所变化 - 我正在描述当前状态。

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

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

  • 查看

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

    帮帮我

    这里有一个键盘列表! 甜。

    上下文菜单

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

  • git-diff(Diff this < - >选中
  • git-format-patch(make patch)
  • git-tag(创建标签)
  • git-diff-tree(写入提交到文件,很少使用)
  • git的分支
  • git的樱桃挑选
  • git-reset(将分支重置到这里)这会提示您是否软,混合或硬,并提示每个操作的作用。 在手册页上有更长的描述,但是当然你必须理解索引的概念才能真正得到它。
  • 在这一点上,“标记提交”和相关命令应该是不言自明的。

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

    中段

  • SHA1 ID:当前提交的散列。 非常有用的复制/粘贴到终端执行您使用gitk查找给定提交的操作。 你也可以把哈希值粘贴到这里。

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

  • 找! 这里的选项同样是不言而喻的,但对于每个人的教育,它们都类似于git-log参数:“ --grep ”是--grep ,“touching paths”是参数,并且添加/删除字符串是-S (镐)。

  • 消息/差异窗格

    在这里,我们有提交消息以及git-diff的输出 - 这就像使用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/

  • 左上方的窗格显示了这个存储库的一系列提交,最近的一个提交。
  • 托尼斯塔克有三次提交。
  • 最近提交的提交消息是“第三次提交”
  • 有一个名为“master”的本地分支,它指向最近的提交
  • 有一个远程引用分支:名为“origin”的远程存储库的“master”分支,它也指向最近的提交
  • 顶部提交旁边的黄色圆点表示这是当前在我的工作文件夹中的快照(称为HEAD)
  • 我强调了第二次提交,以便我可以在下面的窗格中看到它的详细信息
  • 第二次提交的提交SHA(唯一标识符,类似于subversion修订号)
    3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  • 右下方显示受第二次提交影响的文件列表
  • 左下方显示提交详细信息,包括全差异
  • 单击右下窗格中的文件将左下方窗格中的diff滚动到相应的部分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 ... ?
    

    截图将不胜感激。

    该树实际上代表存储库的当前状态。 如果我们能够通过查看树视图来了解发生的事情,那将是一件好事。

    谢谢

    链接地址: http://www.djcxy.com/p/62153.html

    上一篇: Guide to understanding gitk?

    下一篇: Verifying a FIR Filter