Git入门:初始化与克隆仓库
了解何时使用 git init 或 git clone,并在首次提交前验证远程仓库、分支、身份和忽略文件。
Git入门:初始化与克隆仓库
初始化和克隆仓库是开始使用 Git 的两种基本方式。你可以将现有文件夹转换为 Git 仓库,或者复制现有仓库以便处理其文件和历史记录。
这些命令看似简单,但初始选择会影响远程仓库、分支、忽略文件和团队工作流。清晰的设置可以避免后续混乱。
Git 仓库包含什么
Git 仓库是一个项目文件夹,其中包含一个隐藏的 .git 目录。该 .git 目录存储提交历史、分支引用、远程信息、配置以及 Git 的内部对象数据库。
通常你不应手动编辑 .git 文件。而是使用 Git 命令,Git 会自动更新这些内部数据。
要检查文件夹是否已经是仓库,运行:
git status
如果 Git 提示该文件夹不是仓库,你可以初始化一个。如果它显示分支、更改的文件或干净的工作树,则 Git 已跟踪该文件夹。
理解三个常见区域有助于:
- 工作树:你可以查看和编辑的文件。
- 暂存区:为下一次提交选定的更改。
- 仓库历史:Git 已记录的提交。
初始化或克隆仓库时,Git 会设置这些部分,以便你可以开始进行提交。
初始化新仓库
当你有一个尚未被 Git 跟踪的本地项目文件夹时,使用 git init。
创建文件夹并初始化:
mkdir my-app
cd my-app
git init
Git 创建隐藏的 .git 目录。现在你可以添加文件并进行首次提交:
echo "# My App" > README.md
git add README.md
git commit -m "添加 README"
如果默认分支应命名为 main,你可以在创建新仓库前全局设置:
git config --global init.defaultBranch main
或者在初始化后重命名当前分支:
git branch -M main
对于真实项目,在首次大规模提交前创建 .gitignore。这可以防止依赖文件夹、构建输出、日志和本地密钥进入历史:
node_modules/
dist/
.env
*.log
一旦文件被提交,之后将其添加到 .gitignore 并不会从历史中移除它。这就是早期忽略规则重要的原因。
如果你计划将仓库发布到托管服务,请先在那里创建空的远程仓库,然后连接它:
git remote add origin [email protected]:example/my-app.git
git push -u origin main
-u 选项设置上游跟踪。之后,简单的 git push 和 git pull 就知道使用哪个远程分支。
克隆现有仓库
当仓库已存在于其他地方时,使用 git clone。克隆会复制项目文件、历史和远程配置。
基本命令是:
git clone [email protected]:example/my-app.git
Git 会创建一个以仓库命名的文件夹。要选择不同的本地文件夹名称,请在末尾添加:
git clone [email protected]:example/my-app.git worktree-app
克隆后,进入文件夹并检查:
cd worktree-app
git status
git remote -v
git branch
默认情况下,远程仓库通常命名为 origin。这个名称是惯例,并非强制。它指向 Git 用于获取和推送的 URL。
你可能会看到 HTTPS 或 SSH 克隆 URL。HTTPS 易于入门,尤其是对于公共仓库。SSH 常用于日常开发,因为它使用密钥,配置正确后可避免重复输入密码。
对于大型仓库,你可以使用浅克隆:
git clone --depth 1 https://example.com/repo.git
这仅下载最近的历史。它适用于 CI 作业或快速检查,但可能会限制需要旧提交、标签或完整历史的命令。对于正常开发,完整克隆通常更好。
如果仓库使用子模块,请使用以下命令克隆:
git clone --recurse-submodules [email protected]:example/platform.git
或者在克隆后初始化它们:
git submodule update --init --recursive
子模块增加了另一层仓库管理,因此在做出更改前请阅读项目的设置文档。
设置后的常见首次检查
初始化或克隆后,在开始编码前运行一些检查。它们有助于及早发现配置错误。
检查你的身份:
git config user.name
git config user.email
如果是工作仓库,请确保电子邮件与公司账户匹配。你可以在本地设置:
git config --local user.email "[email protected]"
检查远程仓库:
git remote -v
确保获取和推送 URL 指向预期的仓库。意外推送到分支或个人镜像会浪费时间。
检查当前分支:
git branch --show-current
如果你克隆了一个仓库,请在创建分支前阅读 README 或贡献指南。许多团队期望分支名称如 feature/ticket-123-short-description 或 fix/login-timeout。
在首次提交前,检查忽略的文件:
git status --ignored
这是快速确认构建产物和本地密钥文件不会被提交的方法。
何时寻求帮助
如果你不确定使用哪个远程 URL、应该克隆分支还是主仓库、或者如何处理子模块,请向队友或仓库维护者寻求帮助。
如果你在错误的目录中初始化了 Git,也应该暂停。例如,在主文件夹中运行 git init 可能会让 Git 看到数千个不相关的文件。不要随意删除东西。确认 .git 创建的位置,如果确定其中没有需要的历史记录,仅移除错误的仓库元数据。
开始使用 Git 主要是养成干净的习惯。对新本地项目使用 git init,对现有仓库使用 git clone,并在开始重要工作前验证你的分支、远程仓库、身份和忽略文件。