Git(一)工作区域

Git有四个工作区域:


Git工作区域.png

(图片来源于网络,图侵删)
1)workspace:工作区,在本地电脑代码存在路径下的目录,本地IDE直接编辑的代码就存放在工作区。
2)Index / Stage:暂存区,.git/index文件,保存即将提交的文件列表信息,又叫索引。
3)Repository:版本库,.git目录,.git/HEAD文件指针指向当前工作的分支。
4)Remote:远程仓,托管代码的服务器。

git文件的四种状态


Git文件状态.png

(图片来源于网络,图侵删)
版本控制就是文件的版本控制,Git不关心文件的两个版本之间的具体差异,只关心文件的整体是否有改变,若有改变则在添加时(不是等到提交时)就会生成新的快照,而判断文件整体是否改变的方法就是用SHA-1算法计算文件的校验和。
1)Untracked:未跟踪,该文件存在于工作区中未进入版本库,不参与版本控制。
2)Unmodify:文件已入版本库,并且没有修改过,即工作区的文件与版本库的文件快照一致。
3)Modified:文件在版本库,工作区的文件被修改过,即工作区的文件与版本库的文件快照不一致。
4)Staged:暂存状态。

文件区文件的操作
1、工作区<—>暂存区

# 添加文件或者目录到暂存区
git add [filename] 或 git add [dir] 或 git add .

# 删除暂存区的文件,同时工作区也不需要这个文件
git rm [filename]

# 删除暂存区的文件,但是工作区仍需要这个文件
git rm --cached [filename]

# 用暂存区的文件覆盖工作区的文件,工作区未添加到暂存区的改动会清除
git checkout [filename] 或 git checkout .

# 用当前指向分支覆盖工作区和暂存区的改动
git checkout HEAD [filename] 或 git checkout HEAD .

2、工作区<—>暂存区<—>版本库

# 将暂存区的内容提交到版本库
git commit -m "description"

# 移除错误的添加到暂存区的文件,工作区不受影响
git reset HEAD [filename]

# 暂存区和版本库去掉上一次的提交(回退到add之前的状态)
git reset HEAD^

# 暂存区和版本库去掉上一次的提交(回退到add之后,commit之前的状态)
git reset --soft HEAD^

你可能感兴趣的:(Git(一)工作区域)