git 查看分支_系统掌握Git之—探索.git
文章概述
上文中,我们聊了聊git的配置与一些基本概念,今天来看看.git文件夹里面有什么内容。通过阅读本文,你将获得下面的知识:
- .git的内部信息。
- git的分支操作。
- 图形化git工具。
新建分支
我看可以通过git branch
查看分支情况。
* master
当前只有一个master分支,我们可以通过命令 git checkout -b 分支名称
来创建一个新的分支。 我们创建一个名叫temp的分支git checkout -b temp
,再次通过git branch
查看分支情况。
master
*temp
我们对git.txt 随便做些修改,进行提交。
git add git.txt
git commit -m "第一次在分支上提交"
git log
我们再切换master分支,增加一次提交。
git checkout master
# 修改git.txt
git add git.txt
git commit -m "git in master"
我现在我们有两个分支了,我们可以通过上一节讲到的log命令看一下log结构。
下面我们用图形化工具更加具体的看一下当前我们仓库的提交情况。
gitk图形化工具
git默认是自带了图形化工具,在终端输入gitk
。即刻打开图形化工具。
通过设置:视图
-> 新视图
-> 勾选所有引用
就可以看到我上图的提交。
gitk长得比较丑陋,但是他有很多实用的工具,你自己可以探索一下。正式的项目中我比较推荐使用sourceTree
这个工具进行代码管理。下面我们一起看看.git目录里的信息。
.git目录探秘
执行如下命令:
cd .git
cat HEAD
# ref: refs/heads/master 输出信息
HEAD里存放的是当前分支,如果我们将分支切到temp,HEAD里面的内容就变成了temp。
cd .
git checkout temp # 切换到分支 'temp'
cat .git/HEAD
# ref: refs/heads/temp
看完了HEAD的内容,我们看一下refs
目录的结构,它下面有两个文件其中,heads存放分支信息,tags存放标签信息。
cat master
# 9cb473a4ce3f4f9af213406c0177879155dced5c #这个就是master分支的最上面的一次提交id.
git cat-file -t 9cb473a4ce3f4f9af213406c0177879155dced5c # 查看类型
# commit
git cat-file -p 9cb473a4ce3f4f9af213406c0177879155dced5c # 查看内容
# tree c12315fe585a553da1fb7ee853bc84111eb8844d
# parent 6ec84005eb61d5ab8b4b768b8f876a23cc8fc2e1
# author zs_local <zs_local@163.com> 1585831559 +0800
# committer zs_local <zs_local@163.com> 1585831559 +0800
# git in master
我们接下来再看一下objects目录里面的内容。
cd objects # 进入到objects目录
ls # 查看objects目录下的内容
# 10 21 41 51 68 72 96 ae cf info
# 1b 31 4f 5e 6e 82 9c c1 d5 pack
cd 51 # 进入51目录
ls #查看该目录下的内容
# ee9c49370ad551e5fd3e8c98b8a89918369439
git cat-file -t 51ee9c49370ad551e5fd3e8c98b8a89918369439 # 查看类型,文件名是 目录名+目录内文件名
# tree
git cat-file -p 51ee9c49370ad551e5fd3e8c98b8a89918369439 # 查看文件内容 # blob
# 100644 blob 3155fb8c6c13dd5a42827e8e2fddb6eec1079385 git.txt
git cat-file -p 3155fb8c6c13dd5a42827e8e2fddb6eec1079385 #查看blob内容
# Hello git in temp branch%
根据上面的一顿操作,我们可以看出几个关键概念,commitid
、 tree
、blod
。 下面我们讲一下他们三个之间的关系:
- 1个commit对象里面会包含有 tree(相当于文件夹)、parent、author和committer;
- 一个tree里面会包含tree和blog(具体的内容);
- 一个blog指的就是具体的文件内容。在git中,blog与文件名无关,只与文件内容有关,即文件内容相同,在git中是同一个blog。
总结一下.git目录里面的内容:
- HEAD 存放当前所在分支的头节点
- config存放该仓库的一些配置信息,比如用户名,电子邮件,这点我们在第一节中讲过。
- refs 下存放在heads和tags,分别存储着分支信息和标签信息。
- objects目录存储放着所有的git变更历史对应的具体内容信息。
- hooks中存放着对git操作的一些勾子操作,后面会讲到。
git 查看分支_系统掌握Git之—探索.git相关推荐
- git查看分支记录_git原理
标准用法请参考git-scm.本文记录笔者对git的一些理解,如有错误,欢迎指正. 引用内容已用markdown记号标出.版权所有,转载请注明出处. 文章完成中 这是引用内容 First Editio ...
- Git查看分支从哪个分支创建的
使用命令 Git查看分支创建时间 git reflog show --date=iso <branch name> 如果是feature分支 git reflog show --date= ...
- git 查看分支创建时间
git 查看分支创建时间 git reflog show --date=iso <branch name> 可以查看到指定分支的历次更改记录,最下面一条的时间即是分支创建时间.
- git merge 冲突_更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇
原文链接:https://mp.weixin.qq.com/s/d7YwRi1mEkxUSUqxWD_B1Q 这一篇写完基本Git的操作就图解完了,如果想深入了解Git,这里可以推荐一些Git的硬核书 ...
- git 查看分支编码_12个常用的Git命令,赶紧记一波!
今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然:并且梳理了日常最常用的 12 个命令,分为三大类分享给你. 本文的结构如下: 作者和开发原由 Git 的数据模型 常用命令 资源推荐 作者和 ...
- git 切换分支_简单git操作
首先设置用户基本信息设置 设置用户名 git config - -global user.name 'Hazel6869' 设置用户名邮箱 git config - -global user.name ...
- git删除分支_程序员必须要掌握的 Git 使用技巧
作者:你喜欢吃青椒么链接:juejin.im/post/5d157bf3f265da1bcc1954e6 前言 本文是参考廖雪峰老师的Git资料再加上我自己对Git的理解,记录我的Git学习历程,作下 ...
- git 删除分支_深入浅出图解Git,入门到精通(保姆级教程)
原文链接:https://mp.weixin.qq.com/s/_G3l9urASsFjyrYAZBWhDg 分支管理 Git中比较最重要的一点就是分支的概念,有了分支就有了合并和衍合的操作,「合并」 ...
- git 删除分支_常用Git操作命令指南
1.初始化git git init 2.下载git服务器上面的项目 git clone https://github.com/mrjade/reportng.git 3.配置git (1)查看git配 ...
最新文章
- 链表问题(6)-----排序
- Python学习心得第一周-03练习1
- 白话Elasticsearch18-深度探秘搜索技术之基于slop参数实现近似匹配以及原理剖析
- mysql query sql_sql:query 标签
- 【HDU - 6662】Acesrc and Travel(树形dp,博弈dp)
- php5.6 xdebug 配置,php5.5+apache2.4+mysql5.6+xdebug配置
- NTT通信公司在大阪开通运营容灾数据中心
- 众MVP对本书的赞誉
- STM32工作笔记0040---认识MOS管
- 九天学会Java,第三天,选择结构
- 信息系统项目管理师(高项)考试的论文怎么写,怎么背?经验分享
- 虚拟机ubuntu的联网方法(NET)
- android drawtext文字大小,Android 使用View绘制文字(DrawText)技术总结
- c语言输入一个数判断是否是同构数,c语言:编写函数判断x是否同构数
- 计算机远程控制阀门开启,阀门远程控制系统
- 豆豉烘干技巧有哪些,只用下列步骤烘干就行了
- 数据中台全景架构及模块解析!一文入门中台架构师!
- linux不出现图形界面的解决方法
- 433遥控器无线解码 1527中断方式解码 51单片机
- GTSAM中ISAM2和IncrementalFixedLagSmoother说明
热门文章
- Codeforces Round #198 (Div. 1) B,C 动态规划
- linux+分离线程+退出,Linux下线程终止操作.pdf
- text html mime img,使用Python的email.mime.multipart发送HTML邮件时命...
- hive hql文档_Hive存储过程HQL/SQL(一)–hplsql命令行
- MySQL DBA必备:MySQL 5.7升级8.0过程(全)
- 三问三答,解传统企业敏捷转型担忧
- AI语音入门:认识词错率WER与字错率CER
- 大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术
- 光大银行刘淼:基于华为云GaussDB(DWS) 数据仓库创新实践
- 17张图带你解析红黑树的原理!保证你能看懂!