git使用

本文深入解析Git的工作区、暂存区及版本库的概念,详细阐述文件在各区域间移动的操作方式,包括添加、删除和恢复过程。同时,通过具体实例说明如何使用git diff命令检查不同区域之间的文件差异。

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

git结构图

工作区:文件的最直接的增删改都发生在工作区。

暂存区(state或index):实际就是.git目录下的index文件,它是一个包含文件索引的目录树,记录了文件名和文件状态(长度,大小)和指向object的对应关系,而文件的内容则保存在.git/objects中。

版本库:也就是.git/objects中的对象库。

删除和恢复情况:

假如工作区添加了新文件gitTest.php,并已添加到暂存区和版本库

1.rm  gitTest.php  只会删除工作区的文件,暂存区索引和本版库内容不改变

暂存区->工作区: git  checkout  gitTest.php

版本库->工作区:git  checkout  HEAD  gitTest.php

2.git  rm  gitTest.php  会删除工作区和暂存区的gitTest.php的相关数据(git  commit后会删除版本库内容)

版本库->工作区+暂存区:git  checkout HEAD gitTest.php

3.git  rm --cached  gitTest.php  只会删除暂存区gitTest.php内容

工作区->暂存区:git  add gitTest.php

版本库->暂存区:  git checkout  HEAD gitTest.php

注意: 

HEAD是指当前分支最新的一次提交,也就是版本库中该分支的最新版本

git  checkout .  或者git  checkout -  会用暂存区所有的文件代替工作区中的文件,命令很敏感,慎用。

总结:git  chekcout HEAD file  版本库->暂存区+工作区       git  checkout  file   暂存区->工作区      git  checkout  分支名 切换分支

 

git  diff  查看两个区的差别:

git  diff    工作区vs暂存区

git  diff  --cached  暂存区vs版本库

git  diff  HEAD      工作区vs版本库

 

转载于:https://www.cnblogs.com/jayce-yin/p/10449155.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值