基本概念
Git的四个区域
工作区
(Working Directory):也叫工作目录或本地工作目录,就是我们自己电脑上的.git
所在的目录。暂存区
(Stage Area/Index):是一种临时存储区域,用于保存即将提交到Git仓库的修改内容,暂存区是在Git进行版本控制时非常重要的一个区域。一般存放在.git
目录下的 index 文件,所以我们把暂存区有时也叫索引(index)。本地仓库
(Local Repository):通过git init
命令创建的仓库,它包含了完整的项目历史和元数据,是Git存储代码和版本信息的主要位置。工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。远程仓库
(Remote Repository):托管在远程服务器上的仓库。
本地仓库和远程仓库是两个仓库,它们之间是相互独立的。我们可以在本地仓库中做任何修改,但是这些仓库并不会影响到远程仓库,同样远程仓库的修改也不会影响到我们本地仓库。
因此,我们需要一种机制来同步本地仓库和远程仓库的修改内容,让它们的状态保持一致,那这个同步的过程就涉及到 Git 中两个新的命令
push
和pull
。这两个命令的含义和它们的名字一样,一个表示推送,一个表示拉取。
- push:把本地仓库的修改推送给远程仓库
- pull:把远程仓库的修改拉取到本地仓库
Git的三种状态
已修改
(Modified):修改了文件,但没保存到暂存区。已暂存
(Staged):把修改后的文件放在暂存区。已提交
(Committed):把暂存区的文件提交到本地仓库。
Git文件的四种状态
当我们的项目被git管理之后,它就不是一个单纯的项目了(项目中的文件都会被git所管理,每个文件都会被分配不同的状态)。
git中的文件有两种状态:未跟踪 和 已跟踪。
- 未跟踪(Untrack):新创建还没有被 Git 管理起来的文件
- 已跟踪(tracked):指文件已被git所管理(进入监视列表)
- 未修改(Unmodified):已经被 Git 管理起来,但是文件的内容没有发生变化,还没有被修改过
- 已修改(Modified):已经修改了文件,但是还没有添加到暂存区
- 已暂存(Staged):修改过后,并且已经添加到了暂存区内的文件
基本概念
main
:默认主分支origin
:默认远程仓库HEAD
:指向当前分支的指针HEAD^
:上一个版本HEAD~4
:上4个版本
特殊文件
.git
:Git仓库的元数据和对象数据库.gitignore
:忽略文件.gitattributes
:指定文件的属性,比如换行符.gitkeep
:使空目录被提交到仓库.gitmodules
:记录子模块的信息