git暂存区(git权威指南笔记)

本文介绍了Git的基本使用方法,包括查看提交日志、文件状态、撤销修改等操作,并详细解释了Git如何判断文件是否发生改变的过程。同时,还提供了工作区、暂存区及版本库的管理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、查看提交(commit)日志:git log 

 看到每次提交的文件变更统计: --stat        git log --stat

精简输出日志:--pretty=oneline  git log --pretty=oneline


2、查看文件状态: git  status

精简格式的状态输出:-s   git status -s 


3、git diff 

不带任何选项和参数:显示工作区的最新改动(即工作区与提交任务(暂存区,Stage)相比的差异)

工作区和HEAD(当前工作分支):git diff HEAD

提交暂存区和版本库:git  diff --cached





4、撤销工作区中测未提交的修改:git checkout -- <file>  git checkout -- welcome.txt


5、git status (git diff)扫描工作区改动的时候。

git判断文件有没有改变:先比较文件的时间戳、文件大小,再比较文件内容。

先依据.git/index文件中记录的(用于跟踪工作区文件的)时间戳、长度等信息判断工作区文件是否改变,如果工作区文件的时间戳改变了,说明文件的内容可能被改变了,

需要打开文件,读取文件内容,与更改这前的原始文件相比较,判断文件内容是否被更改。如果文件内容没有更改,则将该文件新的时间戳记录到.git/index文件中。



.git/index 虚拟工作区的目录树(文件名和文件状态信息)

.git/objects 文件内容

文件索引:建立了文件和对象库中对象实体之间的对应


6、工作区、暂存区、版本库目录相对浏览:  

版本库目录权:

git ls-tree -l HEAD 

显示文件的大小:-l 

100644 blob a11790e8c69269e02e04f141bc00c9f94b79b99d      10    README.md

输出内容:

100644):文件的属性(rw-r--r--) 

blob :git对象库中的一个blob对象(文件)

a11790e8c69269e02e04f141bc00c9f94b79b99d:文件在对象库中对应的ID


清除工作区中没有加入版本库的文件和目录(非跟踪文件和目录):git clean -fd 

用暂存区内容刷新工作区 git checkout .


暂存区目录树:

git ls-files -s 

100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       testthree.txt

0 暂存区编号

针对暂存区便用 git ls-tree

先把暂存区的目录树写入git对像库: git write-tree

写入对象库中的TreeID :0f0f267c5bad5f73942a77580a6eb4af24daa425

然后 git ls-tree -l 0f0f26

040000 tree 1e4f7e68a173bb0f1e36b70d48436412f3fdac00       -    a (tree树对角,一级目录a)

100644 blob ce013625030ba8dba906f756967f9e9ca394464a       6    testone.txt


对本地所有变更的文件执行提交操作,包括对本地修改的文件和删除的文件,但不包括未被版本库跟踪的文件:git commit -a (不要使用,因为会丢掉Gi暂存区带给用户的最大好处:对提交内容控制的能力)


暂存状态:git stash


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值