创建你的第一个 Git 仓库
学习如何初始化 Git 仓库,理解 .git 目录的作用,开始你的版本控制之旅
简介
现在你已经安装并配置好了 Git,是时候创建你的第一个 Git 仓库了!
仓库(Repository) 是 Git 存储项目所有文件和历史记录的地方。就像一个智能的文件夹,它不仅包含你的文件,还记录了所有的修改历史。
创建仓库的两种方式
方式 1: 初始化新仓库(git init)
从零开始创建一个新项目。
方式 2: 克隆现有仓库(git clone)
复制一个已存在的项目(通常来自 GitHub)。
今天我们先学习第一种方式,克隆仓库会在后续课程中讲解。
实战:创建你的第一个仓库
步骤 1: 创建项目目录
首先,创建一个用于你项目的文件夹:
# 创建项目目录
mkdir my-first-project
# 进入目录
cd my-first-project
💡 提示: mkdir 是 "make directory" 的缩写,用于创建文件夹
步骤 2: 初始化 Git 仓库
在项目目录中运行:
git init
你会看到:
Initialized empty Git repository in /path/to/my-first-project/.git/
恭喜!你刚刚创建了一个 Git 仓库!🎉
步骤 3: 验证仓库创建
查看当前目录:
ls -la
输出:
total 0
drwxr-xr-x 3 user staff 96 Jan 1 12:00 .
drwxr-xr-x 20 user staff 640 Jan 1 12:00 ..
drwxr-xr-x 9 user staff 288 Jan 1 12:00 .git
注意到 .git 目录了吗?这就是 Git 的"魔法"所在!
理解 .git 目录
.git 目录是 Git 仓库的核心,包含了所有版本历史和配置信息。
.git 目录结构
.git/
├── HEAD # 指向当前分支
├── config # 仓库配置
├── description # 仓库描述
├── hooks/ # Git 钩子脚本
├── info/ # 额外信息
├── objects/ # 所有数据对象
├── refs/ # 分支和标签引用
└── ...
⚠️ 重要: 不要手动修改 .git 目录中的文件,让 Git 来管理它!
查看 HEAD 文件
cat .git/HEAD
输出:
ref: refs/heads/main
这表示当前在 main 分支上。
添加第一个文件
让我们给空仓库添加一些内容:
1. 创建 README 文件
echo "# My First Project" > README.md
或者手动创建文件:
# 使用编辑器创建 README.md
code README.md
添加内容:
# My First Project
这是我的第一个 Git 项目!
## 功能
- 学习 Git 基础
- 练习版本控制
2. 查看仓库状态
git status
输出:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
解读:
On branch main: 当前在 main 分支No commits yet: 还没有任何提交Untracked files: README.md 是新文件,Git 还没追踪它
3. 添加文件到暂存区
git add README.md
再次查看状态:
git status
输出:
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
文件现在在暂存区,准备提交了!
4. 创建第一个提交
git commit -m "初始提交:添加 README 文件"
输出:
[main (root-commit) a1b2c3d] 初始提交:添加 README 文件
1 file changed, 8 insertions(+)
create mode 100644 README.md
🎉 恭喜!你创建了第一个 Git 提交!
5. 查看提交历史
git log
输出:
commit a1b2c3d4e5f6g7h8i9j0 (HEAD -> main)
Author: Your Name <your@email.com>
Date: Mon Jan 1 12:00:00 2024 +0800
初始提交:添加 README 文件
完整的工作流程
让我们再练习一遍完整流程:
1. 创建新文件
echo "print('Hello, Git!')" > hello.py
2. 查看状态
git status
3. 添加到暂存区
git add hello.py
4. 提交
git commit -m "添加 Python 脚本"
5. 查看历史
git log --oneline
输出:
b2c3d4e 添加 Python 脚本
a1b2c3d 初始提交:添加 README 文件
git init 的高级用法
指定分支名
git init -b main
或者:
git init --initial-branch=main
在现有目录初始化
如果你已有项目文件:
cd existing-project
git init
git add .
git commit -m "初始提交"
创建裸仓库
用于中心服务器(没有工作目录):
git init --bare my-repo.git
这通常用于远程服务器,我们在后续课程中会详细讲解。
仓库状态图
理解文件在 Git 中的不同状态:
工作目录 暂存区 本地仓库
(Working) (Staging) (Repository)
│ │ │
│ git add │ git commit │
│─────────────────> │─────────────────> │
│ │ │
│ 修改文件 │ 准备提交 │ 已提交
实战练习
练习 1: 创建个人简历项目
# 1. 创建项目
mkdir my-resume
cd my-resume
# 2. 初始化仓库
git init
# 3. 创建简历文件
cat > resume.txt << EOF
姓名:张三
职业:软件工程师
技能:Python, JavaScript, Git
EOF
# 4. 提交
git add resume.txt
git commit -m "创建个人简历"
# 5. 添加更多信息
echo "邮箱:zhangsan@example.com" >> resume.txt
git add resume.txt
git commit -m "添加联系方式"
# 6. 查看历史
git log --oneline
练习 2: 创建网站项目
mkdir my-website
cd my-website
git init
# 创建 HTML 文件
echo "<!DOCTYPE html><html><body><h1>My Website</h1></body></html>" > index.html
# 创建 CSS 文件
echo "body { background: #f0f0f0; }" > style.css
# 一次性添加所有文件
git add .
# 提交
git commit -m "创建网站基础文件"
# 查看状态
git status
常见错误与解决
错误 1: "fatal: not a git repository"
原因: 当前目录不是 Git 仓库
解决:
git init
错误 2: 在错误的目录初始化了仓库
解决: 删除 .git 目录
rm -rf .git
⚠️ 警告: 这会删除所有 Git 历史!
错误 3: 忘记提交就修改文件
这不是错误! Git 会追踪所有修改。只需:
git status # 查看修改
git add . # 添加修改
git commit -m "..." # 提交
最佳实践
1. 项目开始就初始化
项目一开始就使用 Git,不要等到"代码写得差不多了"。
2. 合理组织项目结构
my-project/
├── .git/ # Git 目录
├── .gitignore # 忽略文件列表
├── README.md # 项目说明
├── src/ # 源代码
├── tests/ # 测试文件
└── docs/ # 文档
3. 立即创建 .gitignore
# 创建 .gitignore
cat > .gitignore << EOF
# 操作系统文件
.DS_Store
Thumbs.db
# 编辑器配置
.vscode/
.idea/
# 依赖
node_modules/
__pycache__/
# 构建产物
dist/
build/
EOF
git add .gitignore
git commit -m "添加 .gitignore 文件"
4. 写有意义的初始提交
❌ 不好:
git commit -m "first commit"
✅ 好:
git commit -m "初始化项目:添加基础文件和文档"
检查清单
在开始新项目时,确保完成这些步骤:
- 创建项目目录
-
git init初始化仓库 - 创建 README.md
- 创建 .gitignore
- 设置合适的项目结构
- 创建初始提交
- 验证
git log有记录
小结
今天我们学习了:
- ✅ 使用
git init创建新仓库 - ✅ 理解
.git目录的作用 - ✅ 添加文件并创建第一个提交
- ✅ 查看仓库状态和历史
- ✅ 项目初始化的最佳实践
你现在知道如何从零开始创建一个 Git 项目了!
下一步
继续学习,你会越来越熟练!💪