Git学习总结(二)

前面学习了Git的基本操作,后面继续学习,加油!

查看.git目录的究竟

首先进入被git管理的文件的根目录,可以看到一个.git文件夹。

就是图片展示的这个目录结构。

COMMIT_EDITMSG

最新的一次commit message

config

存放本地仓库(local)相关的配置信息

description

仓库的描述信息,在GitHub创建仓库的时候,可以看到这个选项。

HEAD

指向当前的工作路径,映射到ref引用。

hooks

存放一些Shell脚本

index

暂存区,一个二进制文件

info

exclude/ 存放仓库的一些信息

logs

保存了所有更新的版本日志

objects

存放所有对象,文件夹中的子文件夹都是以哈希值的前两位字符命名 每个object由40位字符组成,前两位字符用来当文件夹,后38位做文件

要想知道这个文件是什么类型、大小、内容。可以通过以下命令查看。

git cat-file 命令 显示版本库对象的内容、类型及大小信息。
git cat-file -t b44dd71d62a5a8ed3 显示版本库对象的类型
git cat-file -s b44dd71d62a5a8ed3 显示版本库对象的大小
git cat-file -p b44dd71d62a5a8ed3 显示版本库对象的内容

例如:要想看09这个代表什么,首先进入文件夹,获取里面的文件id,然后文件夹的名字+文件名,就知道是什么了。

基本上就是这样,可以自己动手看一下。

refs

  1. heads:存放分支
  2. tags:存放tag,又叫里程牌(当这次commit是具有里程碑意义的 比如项目1.0的时候 就可以打tag)

    因为我这里没有设置tag,所以里面为空

commit,blob,tree

  1. 一个commit就是一个tree。
  2. 一个tree里面既包含tree又包含blob。(tree对应文件夹,blob对应文件)
  3. 一个blob里面是文件内容。

ps:git的文件和文件名没关系。只要是内容相同,文件名不同,git默认是同一个文件。
可以根据上面的查看文件类型、大小、内容的命令,自行查看自己git项目中的这三个对象。

分离头指针

是指当前操作不在任何分支上。
适用场景:尝试性变更,就可以使用分离头指针。

git branch fix_readme 2037cd1   #保留分支
git checkout -b new_branch master  #创建(基于master)的分支,并自动切换到这个分支
git diff commit1 commit2   #比较两个commit的差异
git diff HEAD HEAD^  #比较两个commit的差异  ^指代HEAD的父亲

案例:假设对某个文件进行样式的调整,我们采用基于某个commit的情况下,进行分离头指针。等文件变更完后。发现调整后不符合业务需求。所以,只需要切回到原来的分支就行了。

删除不需要的分支

git branch -d fix_readme   #删除分支
git branch -D fix_readme   #强制删除分支

为中华之崛起而读书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值