有识

个人网 | 追寻一切真知灼见

用户工具

站点工具


侧边栏

博主公告

想读书,想旅游,想运动,但是没有时间?其实我们不是没有时间,只是没有真正把想做的事情,放在重要的位置上,或者干脆没时间搞清楚到底那件事情对你来说更重要。^_^ 欢迎大家收看《程序员带你学打羽毛球》 和博主一起加入运动的行列。 ease 11:53 - 08月02日




最新博文》更多博文

分类索引

博主简介
吕某某 Leo
河北人,网名:ease
资深IT菜鸟,创业者
兴趣爱好:
人工智能,运动,读书,coding
人生格言:
命由己造 相由心生 有容乃大 无欲则刚 》博主管理》关于博主


blog:ease:git:git-basic11

git 工具 选择修订版本

选择修订版本,意思就是从众多提交中 选择一个需要的提交节点。也就是节点查询的作用。

通过hash值选择

git log 可以看到 sha-1。 (举例)

可以通过 简短的 sha-1 选中,或者查看。

每个节点有一个唯一的hash 不会重复。几率非常小。比火星撞地球差不多。 git 命令都可以通过 哈希值来选中节点。分支只是哈希值的别名。标签也是。区别是分支可以移动。比如:git show ,git checkout, git reset 等

通过分支来引用

通过分支引用具体的提交节点是最常用的方式。一般不直接通过

引用日志

git reflog

指的是我们用分支或者用 HEAD(当前工作空间所同步的节点) 对于各个节点的引用历史记录。也就是说我们对版本库都做了那些操作。HEAD 如何移动的。 这个日志类似 linux 的 shell 日志。表达的是 “自己”而不是其他成员的 操作历史记录。 可以通过 sha-1 或者 HEAD@{n} 来引用节点。

git reflog 
git show HEAD@{n}
git checkout HEAD@{n}

注意:通过引用日志,即便刚刚删除的分支引用,仍然可以恢复回来。

祖先引用

git show HEAD^  应用当前节点的上一级。
git show d921970^ 同理

git show HEAD^   , git show HEAD~   ,   git show HEAD~1   三个命令是等价的。
git show HEAD~2   可以查看祖父提交  也可以用 git show HEAD^^

也可以组合使用 作用同理

提交区间

双点 ..

git log master..develop     显示develop还没有提交到 master 的 节点历史。
git log develop..master     显示 master 还没有同步到 develop 的提交历史。
git log origin/master..HEAD     查看当前分支 还没有同步到 origin/master  的提交历史。(即将推送的内容)

三点 …

git log master...develop  排除共有:所处两个引用的所有节点中,排除两个引用共同包含的节点。 
git log master...develop --left-right  添加 --left-right 参数 可以用 <> 符号区分 节点属于 master 还是属于 develop

以下都表示:在refB 分支上 但是不在 refA 分支上的提交历史。(分支就是对节点的引用。因此用引用这个词更加通用)

$ git log refA..refB      
$ git log ^refA refB
$ git log refB --not refA
$ git log refA refB ^refC
$ git log refA refB --not refC

这样构成了一个 提交历史的查询系统。可以获得 差异查询的结果。 本节重点,节点引用,节点查询。

blog/ease/git/git-basic11.txt · 最后更改: 03:42 - 09月02日 (外部编辑)