指南了解gitk?
我正在向一个开发团队介绍git,我发现gitk是一个了不起的工具。 这也很难理解,因为理解gitk需要了解git历史和查看器工具本身。
有没有人有任何好的参考像“GitGit的Git历史的初学者指南”?
我从来没有看到任何具体的gitk。 从“如何运作”的angular度来看,这是一个刺戳。 了解一切背后的命令(或者至less基本相同)有助于学习更轻松地使用命令行工具,还可以显示在何处查看文档以更好地理解gitk!
文件菜单
这在过去的几个主要版本中有所变化 – 我正在描述当前状态。
-
更新和重新加载:这可能是最令人困惑的事情。 刷新刷新所有内容,就像用相同的configuration启动程序一样。 这意味着,如果一个分支已经被删除/重新发布,如果现在有一些提交悬而未决,你不会再看到它们。 另一方面,更新会刷新所有信息,但仍显示先前显示的所有提交。 这是一个很好的使用,如果你正在重新devise,并希望确保你没有搞砸 – 你可以看到原来的和重新发布的版本。
-
引用:很明显。 引用包括标签和分支(可能是远程的)。 你可以重新读取它们,并列出来点击一个特定的历史logging。
查看
正如手册页所说,gitk需要git-rev-list选项来帮助指定应该显示的历史logging。 这些也可以在“查看”菜单中交互设置。 手册页是一个很好的地方,可以find更多关于你可以控制视图的信息(主要在提交限制部分)。 如果你之前看过git-log
,你会看到很多。
帮帮我
这里有一个键盘列表! 甜。
上下文菜单
这提出了几个常见的git瓷器命令,通常在一个通用/默认的操作模式。 列出它们至less可以帮助你find正确的文档来理解他们做什么,如果你还没有的话!
- git-diff (Diff this < – >选中
- git-format-patch (make patch)
- git-tag (创build标签)
- git-diff-tree (写入提交到文件,很less使用)
- git的分支
- git的樱桃挑选
- git-reset (重置分支到这里)这会提示你软,混合还是硬,并提示每个操作。 在手册页上有更长的描述,但是当然你必须理解索引的概念才能真正得到它。
在这一点上,“标记一个提交”和相关命令应该是不言自明的。
在分支的上下文菜单中,我们有git-checkout和git-branch的-d
(delete)模式。
中段
-
SHA1 ID:当前提交的散列。 非常有用的复制/粘贴到terminal执行您使用gitkfind的给定提交的操作。 你也可以把哈希值粘贴到这里。
-
前进/后退button,行号…显而易见!
-
找! 这里的选项是非常明显的,但是对于每个人的教育,它们都类似于git-log参数:“
--grep
”是--grep
,“touching paths”是参数,添加/删除string是-S
镐)。
消息/差异窗格
在这里,我们有提交消息以及git-diff的输出 – 这就像使用git-log -p
,稍微多一点:
-
“分支”相当于
git branch -a --contains=<commit>
-
“先行”/“跟随”相当于
git describe [--contains] <commit>
( git-describe )
这里有一个介绍gitk分支历史的可视化截图。
http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/
- 左上方的窗格显示了这个仓库的一系列提交,最近的一个提交。
- 托尼·斯塔克有三次提交。
- 最近提交的提交消息是“第三次提交”
- 有一个名为“master”的本地分支,它指向最近的提交
- 有一个远程引用分支:名为“origin”的远程存储库的“master”分支,它也指向最近的提交
- 顶部提交旁边的黄色圆点表示这是当前在我的工作文件夹中的快照(称为HEAD)
- 我已经突出了第二个提交,以便我可以在下面的窗格中看到它的细节
- 第二次提交的提交SHA(唯一标识符,类似于颠覆版本号)
3d024dd9e4a83d8c6a9a143a68b75d4b872115a6- 右下方显示受第二次提交影响的文件列表
- 左下方显示提交详细信息,包括完整的差异
- 单击右下窗格中的文件将左下窗格中的diff滚动到对应的部分12。
从“gitk与history的结合”的angular度来看,新手真的可以用什么来解释如何通过查看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的git,请检查Windows上的TortoiseGit或Mac上的GitX或Linux上的QGit。