1. 安装
首先,我们需要下载Git并将其安装在我们的计算机上。我们可以在Git官网https://git-scm.com上找到适合我们操作系统的版本。在这个网站上,你可以找到适用于Windows、Mac和Linux等操作系统的安装程序。
在下载完成后,双击安装程序并按照提示进行安装。默认情况下,Git将安装在C:\Program Files\Git(Windows)
或/usr/bin/git
(Linux)目录下。
2 初始配置
1 | git config --global user.name "username" |
3. Git的基本原理
3.1 一些基本概念
main
: 默认主分支origin
: 默认远程仓库HEAD
:指向当前分支的指针HEAD^
:上一个版本HEAD~4
:上4个版本
3.2 Git的工作原理
Git是一个分布式版本控制系统,它的核心是一个简单的数据结构——Git仓库。Git仓库是一个存储所有项目文件的目录,它包含了一个隐藏的.git
目录,这个目录中包含了Git仓库的所有数据。它的基本原理可以简单概括为:将文件的变化记录下来并进行跟踪,以便在需要时可以方便地回溯历史状态。
具体来说,Git将文件的变化保存在一个名为“仓库”的数据结构中,每次修改都会生成一个新的“提交(commit)”,记录了该次修改的具体内容以及修改者的信息、时间戳等元数据。提交可以形成一条有向无环图(DAG),其中每个节点表示一个提交,每个提交可以有多个父节点(合并操作时会用到)。
Git采用哈希值来标识每个提交,这保证了提交的唯一性,也可以方便地进行校验。Git还提供了一些命令行工具和图形界面工具,以便用户可以方便地查看和管理提交历史、分支、标签等信息。
3.3 Git中文件的三种状态
Git仓库中的文件可以处于三种状态之一:已提交(committed)、已修改(modified)和已暂存(staged)。已提交表示数据已经安全地保存在本地数据库中。已修改表示修改了文件,但还没有保存到数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
未跟踪(Untracked):文件在本地,未添加到git仓库,不参与版本控制,执行
git add
后 状态变为Staged
。未修改(Unmodified):文件已入库,未修改,即版本库中的快照内容与本地文件一致。修改后转为
Modified
,执行git rm
后移出版本库,变为Untracked
已修改(Modified):文件已入库,已修改,即版本库中的快照内容与本地文件不一致。使用
git checkout
则丢弃修改,返回Unmodified
状态,git add
后进入暂存Staged
状态。暂存(Staged):暂存状态,执行
git commit
则修改同步到本地库中,文件变为Unmodified
状态,执行git reset HEAD filename
取消暂存,文件变为Modified
状态可以使用
git status [filename]
来查看指定文件的状态。
下面这张图演示了文件的三种状态以及它们之间的转换过程:
下面这三张图演示了在修改文件后执行git add
和git commit
命令的过程:
3.4 Git的四个工作区域
Git有四个区,分别是工作区(Working Directory)、暂存区(Staging Area/Index)、本地仓库(Local Repository)和远程仓库(Remote Repository)。
工作区:也叫工作目录,本地工作目录,也就是开发者实际操作的目录,包含项目的源代码、文档等文件。
暂存区:也叫待提交更新区,存放临时变动,本质上是文件,保存即将提交的文件列表。在进行提交前,开发者可以选择将工作区中的某些文件或修改暂时存放到暂存区,通过执行git add命令将它们添加到暂存区,这些被添加的文件就成为了“暂存文件”。暂存区相当于是一个缓存区,里面存放着即将要提交的内容。
本地仓库:当开发者执行git commit命令时,Git会将暂存区中的所有文件打包成一个新的提交,并将其保存到本地仓库中。本地仓库是Git保存项目历史记录的主要地方,每次提交都会在本地仓库中创建一条新的提交记录。本地仓库可以通过git clone或者git init来创建。
远程仓库:开发者可以将本地仓库中的内容推送到远程仓库(如GitHub、GitLab、Gitee等),这样其他开发者就可以从远程仓库中拉取最新的代码。远程仓库通常是分布式团队协作中的核心,它能够将分布在不同地方的开发者和代码联系在一起。