初始化仓库

万事开头难,使用 Git 进行版本控制的第一步,就是创建一个 Git 仓库。

所谓的“仓库”,本质上就是一个被 Git 监控的目录。在这个目录里,Git 会记录下每一次文件的修改、删除和新增,仿佛给项目建立了一个完整的“时光机”档案库。

获取 Git 仓库通常有两种方式,本章重点讲解最常用的第一种:在现有目录中初始化。

1. 在现有目录中初始化

如果你已经有一个写了一半的项目代码,或者只是新建了一个空文件夹想开始新项目,你需要使用 git init 命令。

操作步骤

  1. 打开终端 Windows 用户推荐使用 Git Bash 或 PowerShell。

macOS/Linux 用户使用 Terminal。 2. 进入项目目录 使用 cd 命令切换到你想要管理的文件夹路径。例如,你的项目在 D:\projects\my-web:

cd D:\projects\my-web
  1. 执行初始化命令 输入以下命令并回车:
git init

发生了什么?

当你执行完上述命令后,终端通常会输出类似这样的一句话:

Initialized empty Git repository in D:/projects/my-web/.git/

这句话告诉我们两件事:

  1. Empty:这是一个空的仓库,里面还没有任何文件被纳入版本控制(即使目录里有文件,Git 也没开始管它们)。
  2. .git:在你的项目目录下,多了一个名为 .git 的隐藏子目录。

重要揭秘:.git 目录

.git 目录是 Git 仓库的核心,它存储了项目所有的版本历史、配置信息、分支数据等。

不要手动修改它:除非你是 Git 专家,否则不要尝试手动修改 .git 目录里的文件,这可能会破坏仓库。 不要删除它:如果你删除了 .git 目录,这个项目就变回了普通的文件夹,所有的历史记录将彻底丢失。 如何查看:默认情况下,该目录是隐藏的。在 Windows 资源管理器中,你需要勾选“查看 -> 隐藏的项目”才能看到它。

2. 克隆现有仓库

除了从零开始,另一种常见的情况是你想参与一个已有的项目(例如从 GitHub 或 Gitee 上下载开源代码)。这时候不需要 git init,而是使用 git clone。

这就好比别人已经建好了档案库,你直接把档案库完整复制一份到自己电脑上。

命令格式:

git clone <远程仓库地址>

示例:

git clone https://github.com/jquery/jquery.git

执行后,Git 会自动创建一个名为 jquery 的文件夹,并在里面初始化好仓库,拉取所有历史数据。

3. 关于初始分支

在早期的 Git 版本中,初始化后的默认分支名通常叫 master。但从 Git 2.28 版本开始,为了保持术语的中立性和一致性,社区建议使用 main 作为默认分支名。

当你执行 git init 后,可以使用以下命令查看当前分支:

git branch

如果你看到 master,这是旧式默认命名。 如果你看到 main,这是现代默认命名。 如果提示 No commits yet,说明目前还没有任何提交,分支名尚未确定,等到第一次提交后即可看到。 提示:如果你想统一修改默认分支名为 main,可以在全局配置中执行:

git config --global init.defaultBranch main

4. 常见误区与注意事项

不要在“大目录”里初始化

错误示范:

有的用户习惯在根目录(如 C:\ 或 D:\ 甚至桌面)直接执行 git init。 这会导致整个磁盘或桌面下的所有文件都被 Git 监控,不仅会让 Git 扫描海量文件导致卡顿,还会造成隐私泄露和混乱。

正确做法:

始终为每个项目建立一个独立的文件夹,在这个项目根目录下执行 git init。

不要“仓库套仓库”

错误示范:

在一个已经被 Git 管理的仓库目录里,再创建一个子目录并执行 git init。

Git 会将子目录里的 .git 视为普通文件忽略掉,或者产生混乱的路径引用。通常建议一个项目对应一个 Git 仓库。

5. 本节总结

命令 作用 适用场景
git init 创建新的本地仓库 本地新建项目,或为已有代码添加版本控制
git clone <url> 克隆远程仓库到本地 参与开源项目,或从公司服务器拉取代码

初始化仓库只是第一步,现在你的项目还只是一个“空壳”,接下来我们将学习如何将文件添加进去。