文章目录
上一篇我们了解了 Git 是什么以及如何安装,这篇我们来学习 Git 的最基本操作:创建本地仓库和进行基础配置。
现在,让我们把理论化为实践,开始真正动手使用 Git 来管理我们的文件。
就像我们盖房子要先打地基一样,使用 Git 的第一步,是为你想要进行版本控制的项目“创建”一个 Git 仓库。
现在所讲,全部是本地Git仓库,不是远程仓库!Git是版本控制工具,而并非只能用远程仓库的版本控制工具!
什么是“仓库”(Repository)?
仓库(Repository),听起来是不是有点高大上?其实对于 Git 来说,一个仓库就是一个特殊的文件夹。当你把某个文件夹变成一个 Git 仓库后,Git 就会开始跟踪这个文件夹以及它里面所有文件和子文件夹的变化。
这个特殊的文件夹,以及 Git 在它里面创建的一个隐藏的 .git
子目录,就构成了你的 Git 仓库。你项目的所有版本历史、重要的配置信息等等,都会被 Git 保存在这个 .git
目录里。
**但要理解的是:**真正的版本库是
.git
文件夹,包含.git
的那个文件夹是仓库的工作区,下篇博客会进行详细区分理解。
创建一个 Git 本地仓库:git init
怎么把一个普通的文件夹变成 Git 仓库呢?非常简单,只需要一个命令:git init
。
这个命令的意思就是:“Git,请你现在开始初始化(initialize)我当前所在的这个文件夹,让它变成一个可以进行版本控制的 Git 仓库吧!”
非常重要的一点: 你必须在你想要进行版本控制的那个文件夹里执行 git init
命令!
来跟着例子做:
假设你有一个项目文件夹,比如叫做 my-awesome-project
,你希望用 Git 来管理它。
- 打开终端或命令行工具。
- 进入到你的项目文件夹里。 使用
cd
命令(change directory)。
# 假设你的项目文件夹路径是 /home/zz/gitcode
cd /home/zz/gitcode
对应着Windows进入一个文件夹:
打开Git Bash在该文件夹路径下:
- 确认当前目录是否正确。 可以使用
pwd
命令查看当前路径。
zz@139-159-150-152:~/gitcode$ pwd
/home/zz/gitcode
(pwd
命令会显示你当前所在的完整目录路径)
- 执行
git init
命令。
zz@139-159-150-152:~/gitcode$ git init
执行后,你会看到 Git 的反馈信息:
Initialized empty Git repository in /home/zz/gitcode/.git/
这句话的意思是:“已在 /home/zz/gitcode/
这个路径下,初始化了一个空的 Git 仓库,仓库的核心文件放在了 .git/
这个文件夹里。”恭喜!你已经成功地在 /home/zz/gitcode
文件夹里创建了一个 Git 本地仓库。
- 看看发生了什么。 Git 在你的项目文件夹里创建了一个隐藏的
.git
文件夹。在 Linux/macOS 下,你可以使用ls -a
或ll -a
命令(显示所有文件,包括隐藏文件)来查看。
zz@139-159-150-152:~/gitcode$ ll -a
total 12
drwxrwxr-x 3 zz zz 4096 May 5 15:49 ./ # 当前目录
drwxr-xr-x 13 zz zz 4096 May 5 15:47 ../ # 上级目录
drwxrwxr-x 7 zz zz 4096 May 5 15:49 .git/ # Git 仓库目录,它是隐藏的
Windows记得打开隐藏文件显示:
看到了吗?多了一个以点开头的 .git
文件夹。这个 .git
文件夹就是你 Git 仓库的“大脑”! 它包含了 Git 用来跟踪你的项目、保存所有版本历史、分支信息等等的全部数据。【重要警告】:千万不要 手动去修改或删除这个 .git
文件夹里面的任何文件! Git 是通过管理这个文件夹来工作。如果你手动去改动它里面的文件,很可能会破坏你的仓库,导致 Git 无法正常跟踪和管理你的项目历史。把它交给 Git 自己去管理就好!如果你好奇 .git
文件夹里有什么,可以使用 tree .git/
命令(如果你的系统安装了 tree 工具)看看它的结构:
zz@139-159-150-152:~/gitcode$ tree .git/
.git/
├── branches # 分支相关的简单信息(较少用)
├── config # 仓库的配置文件
├── description # 仓库的描述信息(较少用)
├── HEAD # 指向当前所在的分支
├── hooks # 存放 Git 钩子脚本的目录
├── info # 存放一些不希望被提交的文件信息,比如 exclude
├── objects # Git 存储所有版本数据的“对象”目录
└── refs # 存放指向提交记录的指针,如分支(heads)和标签(tags)
9 directories, 16 files # 目录和文件的数量可能因 Git 版本略有不同
作为新手,你不需要理解这里面每一个文件或文件夹是干嘛的,只需要知道它们是 Git 仓库的核心,并且不要手动去碰它们就够了!
配置你的 Git 身份:git config
刚安装好 Git,并且创建了仓库后,Git 希望知道你是谁。这是非常重要的一步!
为什么需要知道你是谁呢?因为当你用 Git 保存你的改动(我们后面会称为“提交”/commit)时,Git 会把你的名字和邮箱地址记录下来,作为这次改动的作者信息。这对于跟踪谁做了哪些修改,尤其是在团队协作中,非常重要。
我们可以使用 git config
命令来设置你的名字和邮箱。
需要设置两项基本信息:
- 你的名字 (user.name):可以是你的真实姓名、昵称或任何你希望用来标识自己的名字。
- 你的邮箱 (user.email):通常是你的常用邮箱地址,或者是专门用于 Git 提交的邮箱。
设置命令:
# 设置你的名字
git config [--global] user.name "你的名字"
# 设置你的邮箱
git config [--global] user.email "你的邮箱@example.com"
注意:
- 直接使用
git config xxxx
设置的是当前pwd
下的仓库的配置信息,而不是你电脑上所有的仓库的配置信息。 - 请将
"你的名字"
替换成你自己的名字(例如"Zhang San"
)。 - 请将
"你的邮箱@example.com"
替换成你自己的邮箱地址(例如"zhangsan@example.com"
)。只要格式正确即可,Git 不会立即去验证这个邮箱是否存在。
关于 --global
参数:
这是一个非常常用的参数,理解它很重要:
git config --global ...
:当你加上--global
参数时,你设置的名字和邮箱会应用到你这台电脑上所有使用 Git 的仓库。这意味着你只需要设置一次,以后在这台电脑上无论使用哪个 Git 仓库,你的身份都会是这个。对于大多数个人用户来说,这是最方便的设置方式。- **建议新手第一次配置时就使用 **
--global
,这样以后就不用在每个新仓库里重复设置了。 - 执行带
--global
的配置命令不需要进入特定的 Git 仓库目录,可以在系统的任何地方执行。
- **建议新手第一次配置时就使用 **
git config ...
** (不带--global
):如果你在执行git config
命令时不加**--global
参数,那么这个设置只对你当前所在的这个 Git 仓库生效。如果你需要在不同的项目中使用不同的名字或邮箱(比如公司项目用工作邮箱,个人项目用个人邮箱),就可以进入到特定的项目文件夹(也就是 Git 仓库里),然后不带--global
执行git config
命令来单独设置。这种局部配置会覆盖全局配置。请注意,执行不带--global
的配置命令必须在 Git 仓库目录下。
查看你的 Git 配置:
想看看你已经设置了哪些 Git 配置信息?使用这个命令:
git config -l
(这里的 -l
是 --list
的缩写,意思是列出所有配置)
这个命令会列出 Git 当前知道的所有配置信息,包括全局配置、系统配置(如果存在)以及当前仓库的本地配置(如果你在仓库目录里执行的话)。
删除你的 Git 配置:
如果你需要删除之前设置的名字或邮箱配置,可以使用 --unset
参数:
# 删除全局设置的名字
git config --global --unset user.name
# 删除全局设置的邮箱
git config --global --unset user.email
如果你是删除不带 --global
的本地配置,同样去掉 --global
参数并在仓库目录里执行即可。
总结一下
到这里,你已经掌握了使用 Git 的最初两步:
- 使用
git init
命令在你的项目文件夹里创建一个 Git 本地仓库,让 Git 开始为你管理文件。记住.git
文件夹是核心,但不要手动修改它! - 使用
git config
命令设置你的名字和邮箱,以便 Git 知道是谁在进行操作。通常使用--global
参数进行全局设置一次即可。
现在,你的项目文件夹已经是一个 Git 仓库了,并且 Git 知道你是谁。你已经为使用 Git 来跟踪、保存和管理你的文件改动打好了坚实的基础!
在下一篇博客中,我们将学习如何将你的文件添加到 Git 的跟踪范围,并保存你的第一次改cle