git log -l -pretty=raw // 查看日志 -l是干啥的
git log -pretty=raw //
git cat-file -t 哈希值 // 查看id的类型
不知道为啥这里我不一样:即使用git log -l --pretty=raw也只是出现commit的,但是git cat-file -p 哈希值则会出现tree和parent。
root@tuhooo:~/workspace/demo # git log
commit ac31089960196a531c277dc516be678c0aa76489 (HEAD -> master)
Author: tuhooo <tuhooo@.com>
Date: Thu Jun :: + empyt commit? commit 12dc6c72e41e6457e262f6f1be5ec5dd5dcb6b58
Author: tuhooo <tuhooo@.com>
Date: Thu Jun :: + initialized.
root@tuhooo:~/workspace/demo # git cat-file -p ac31
tree 190d840dd3d8fa319bdec6b8112b0957be7ee769
parent 12dc6c72e41e6457e262f6f1be5ec5dd5dcb6b58
author tuhooo <tuhooo@.com> +
committer tuhooo <tuhooo@.com> + empyt commit?
查看tree对象的信息:
root@tuhooo:~/workspace/demo # git cat-file -p 190d
blob 18832d35117ef2f013c4009f5b2128dfaeff354f welcome.txt
这里blob对象保存着文件"welcome.txt"的内容。
root@tuhooo:~/workspace/demo # git cat-file -t 18832d35117ef2f013c4009f5b2128dfaeff354f
blob
root@tuhooo:~/workspace/demo # git cat-file -p 18832d35117ef2f013c4009f5b2128dfaeff354f
Hello.
这些对象都是存放在git库中的objects目录下(id的前两位作为目录名,后38位作为文件名)。
在commit对象之间的相互关联,可以很容易识别出一条跟踪链。最后一个commit没有parent属性,所以跟踪链到此终结,此即为提交的起点。
git log --pretty=raw --graph ac31
git status -s -b // 查看工作区和暂存区的改动 -s 精简信息 -b 显示当前分支
git branch // 查看当前分支, 前面标有*号的是当前分支
// 下面三个命令的输出是一样的
git log -l HEAD
git log -l master
git log -l refs/heads/master
也就是在当前的版本库中,HEAD、master和refs/heads/master具有相同的指向。接下来一步一步从HEAD到master再到commit。得出的结论是master指向的是一个提交ID(最新提交)。即用一个文件指向这个链条的最新提交。
find .git -name HEAD -o -name master
在.git/logs目录下的文件以后再讨论,现在看.git/HEAD和.git/refs/heads/master上。
cat .git/HEAD
cat .git/refs/heads/master
git cat-file -t e69606 // 查看该提交
查看该提交的内容
用一个文件指向最新的提交,就是.git/refs/heads/master了。
git rev-parse // 显示引用对应的提交
git rev-parse master
git rev-parse refs/heads/master
git rev-parse HEAD
git学习(七):git 对象库的更多相关文章
-
git学习(七) git的标签
git的标签操作 git标签操作 git tag 不加任何参数 表示显示标签(按字母序) 非按时间 git tag 标签名 默认是给最近一次提交打上标签 git tag 标签名 commitId 给响 ...
-
git学习——<;五>;git分支
git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...
-
git学习之创建版本库(三)
创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以 ...
-
git学习2:版本库
创建版本库 版本库,又称仓库,英文名为repository,版本库内的所有文件都可以被Git管理起来,即每个文件的修改.删除,Git都能跟踪. 1,在目录中创建版本库 在目录中有两种创建版本库的方法, ...
-
git学习之创建版本库
创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以 ...
-
git学习01- 下载安装&;初始化库&;提交
1.windows下安装git,git官网下载安装包安装 2.本地创建一个目录,在目录下创建1个文本 readme.txt 3.cmd进入到该目录,执行git init,初始化git仓库 4.添加文件 ...
-
Git 学习之关于版本库
记得在第一次接触代码的时候,当对一些改动不是很确定的时候,我的做法就是在我的电脑上保留多个文件,分别以不同的名字来保存,以便于以后发现某个地方的带动是错误的好做修改,现在想想真是好笑啊. 慢慢的在工作 ...
-
git学习3 - 克隆远程库到本地 将本地库上传到git
如何克隆远程版本库到本地 git clone URL 如何用命令将本地项目上传到git 1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 (注意: cd C:/U ...
-
mzy git学习,git推送到远程库(八)
git在同步到远程库 关于git中多个用户切换的事情: 完全使用账户密码策略连接远程库: 之前一直尝试在本地切换多个用户,发现一直不行,很奇怪?后面发现必须要去win10的凭据管理器删除当前git的凭 ...
随机推荐
-
PHP扩展-如何使用文件config.m4
config.m4文件用于指定正在开发的扩展在类unix系统下构建时支持的选项,指定此扩展需要哪些库以及哪些源文件:使用 GNU autoconf 语法编写.注意需要重新执行phpize,config ...
-
linux系统下yum 安装mysql的方法
菜鸟一个,记录下yum 安装mysql的方法,给需要的朋友也做个参考吧. 弄了个新vps,想安装最新版的mysql,网上查了相关资料,记录如下: 1.安装查看有没有安装过: yum ...
-
素数筛 poj 2689
素数筛 #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; ...
-
字符串链接strcat
#include "stdafx.h" #include "iostream" #include "assert.h" #include & ...
-
使用Unity游戏引擎在IOS模拟器中运行的方法
在Unity编译IOS程序时,在Unity导航栏菜单中选择Edit->ProjectSettings ->Player(菜单项)选择IOS平台在下方SDK Version处选择运行设备为I ...
-
Pig系统分析(6)-从Physical Plan到MR Plan再到Hadoop Job
从Physical Plan到Map-Reduce Plan 注:由于我们重点关注的是Pig On Spark针对RDD的运行计划,所以Pig物理运行计划之后的后端參考意义不大,这些部分主要分析流程, ...
-
灰度直方图及处理“cvQueryHistValue_1D”: 找不到标识符”的问题(上)
// HIstogram.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "opencv2/opencv.hpp ...
-
iOS 检测文本中的 URL、电话号码等信息
iOS 检测文本中的 URL.电话号码等信息 要检测文本中的 URL.电话号码等,除了用正则表达式,还可以用 NSDataDetector. 用 NSTextCheckingResult.Checki ...
-
Request JSON
https://developer.android.com/training/volley/request.html Request JSON Volley provides the followin ...
-
JS_左边栏菜单
需求: 要求实现左边栏菜单点击一下就弹开,其他的隐藏.再点击一下就隐藏. 最多只能有一个菜单的详细内容会显示出来. 三个菜单实现联动效果. 代码如下: 1 <!DOCTYPE html> ...