git基本概念

 

Git 的五个区域

1.workspace:工作区,就是你在电脑里能看到的目录,也是编辑文件的位置。初始化工作空间或者工作空间 clean 的时候,文件内容和 index 暂存区是一致的,随着修改,工作区文件在没有 add 到暂存区时候,工作区将和暂存区是不一致的。

2.index/stage:暂存区,实际上是一个文件(.git/index文件),暂存区有时也叫作索引(index)用于保存即将提交到文件列表的信息。所有暂时存放在暂存区中的文件将随着一个 commit 一起提交到 local repository 此时 local repository 里面文件将完全被暂存区所取代。暂存区是 git 架构设计中非常重要和难理解的一部分。

3.Repository:仓库区/版本库,也就是本地仓库(.git文件夹),保存每次文件更新的记录,包括提交人,提交时间,提交的内容等详细信息,方便追溯历史版本,里面有提交所有版本的数据,其中HEAD指向最新放入仓库的版本。git 是分布式版本控制系统,和其他版本控制系统不同的是他可以完全去中心化工作,你可以不用和中央服务器 (remote server) 进行通信,在本地即可进行全部离线操作,包括 log,history,commit,diff 等等。完成离线操作最核心是因为 git 有一个几乎和远程一样的本地仓库,所有本地离线操作都可以在本地完成,等需要的时候再和远程服务进行交互。

4.Remote:远程仓库/上游版本库,托管代码的服务器(类似github),本地仓库的一个副本,主要是方便合作伙伴之间的仓库文件同步,电脑存储空间损坏也不影响远程仓库数据。中心化仓库,所有人共享,本地仓库会需要和远程仓库进行交互,也就能将其他所有人内容更新到本地仓库把自己内容上传分享给其他人。结构大体和本地仓库一样。

5.stash:存档库。 用来存储一些我们暂时还不想添加到git记录中的内容,也是用来存储我们的修改记录;可以把它当做一个储藏室,暂时存储修改,等到需要的时候再恢复到本地工作区

远程仓库副本

项目目录包括:工作区、暂存区、本地仓库区

Git目录也就是本地仓库区,暂存区也在里面

 

 

 

 

 

 

Git 中文件的五种状态

Untracked: 未跟踪此文件在文件夹中, 但并没有加入到git库, 不参与版本控制。通过git add 状态变为Staged。
Staged: 已暂存状态。执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态。执行git reset HEAD filename取消暂存,文件状态为Modified
Unmodify: 文件已经入库, 未修改 即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处, 如果它被修改, 而变为Modified;如果使用 git rm 移出版本库, 则成为Untracked文件
Modified: 已修改这个文件也有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
committed:已提交。表示文件已经安全地保存在本地仓库区

 

 

新建文件--->Untracked

使用 git add 命令将新建的文件加入到暂存区--->Staged

使用 git commit 命令将暂存区的文件提交到本地仓库--->Unmodified

如果对Unmodified状态的文件进行修改---> modified

如果对Unmodified状态的文件进行remove操作--->Untracked

 

汇总图

 

 

Git常用命令

 

posted on 2023-03-23 18:59  0820LL  阅读(26)  评论(0编辑  收藏  举报

导航