🏗️ 第三章:创建仓库 —— 从零开始
两种创建仓库的方式
创建 Git 仓库有两种方式,就像盖房子有两种方式——自己从头盖,或者买一套现成的(然后拆拆改改)。
方式一:git init—— 白手起家
bash
# 创建项目目录
mkdir 我的第一个网站
cd 我的第一个网站
# 初始化 Git 仓库
git init
Initialized empty Git repository in /home/xiaoming/我的第一个网站/.git/
# 看看发生了什么
ls -la
total 12
drwxr-xr-x 3 xiaoming xiaoming 4096 Jun 20 10:00 .
drwxr-xr-x 15 xiaoming xiaoming 4096 Jun 20 10:00 ..
drwxr-xr-x 7 xiaoming xiaoming 4096 Jun 20 10:00 .git就这么简单!git init 会在当前目录下创建一个隐藏的 .git 文件夹。这个文件夹就是 Git 的"大脑",所有的版本信息都在里面。
方式二:git clone—— 站在巨人的肩膀上
bash
# 用 SSH 方式克隆
git clone git@github.com:xiaoming/我的第一个网站.git
Cloning into '我的第一个网站'...
remote: Enumerating objects: 42, done.
remote: Counting objects: 100% (42/42), done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 42 (delta 12), reused 42 (delta 12)
Receiving objects: 100% (42/42), 8.50 KiB | 8.50 MiB/s, done.
Resolving deltas: 100% (12/12), done.
# 用 HTTPS 方克隆(推荐新手用这个)
git clone https://github.com/xiaoming/我的第一个网站.git
# 克隆到指定目录
git clone https://github.com/xiaoming/我的第一个网站.git my-website.git 目录结构探秘
这个 .git 文件夹是 Git 的秘密基地,让我们看看里面都有什么:
bash
ls -la .git/
total 32
drwxr-xr-x 7 xiaoming xiaoming 4096 Jun 20 10:00 .
drwxr-xr-x 3 xiaoming xiaoming 4096 Jun 20 10:00 ..
-rw-r--r-- 1 xiaoming xiaoming 23 Jun 20 10:00 HEAD
drwxr-xr-x 2 xiaoming xiaoming 4096 Jun 20 10:00 branches
-rw-r--r-- 1 xiaoming xiaoming 92 Jun 20 10:00 config
-rw-r--r-- 1 xiaoming xiaoming 73 Jun 20 10:00 description
drwxr-xr-x 2 xiaoming xiaoming 4096 Jun 20 10:00 hooks
drwxr-xr-x 2 xiaoming xiaoming 4096 Jun 20 10:00 info
drwxr-xr-x 4 xiaoming xiaoming 4096 Jun 20 10:00 objects
drwxr-xr-x 4 xiaoming xiaoming 4096 Jun 20 10:00 refs| 文件/目录 | 作用 | 通俗解释 |
|---|---|---|
| HEAD | 指向当前分支 | "我现在在哪棵树上" |
| config | 仓库级配置 | 这个仓库的"个人设置" |
| objects/ | 所有数据(提交、文件、树) | 仓库的"记忆宫殿" |
| refs/ | 分支和标签的指针 | 各个书签的位置 |
| hooks/ | 钩子脚本 | "如果发生 XX 事件,自动执行 YY" |
| index | 暂存区 | "等待提交的购物车" |
⚠️ 注意: 千万不要手动修改 .git 目录里的文件!除非你非常清楚自己在做什么。否则你的仓库可能会"原地爆炸"。所有的操作都应该通过git命令来完成。
第一个文件,第一次提交
bash
# 创建一个 index.html 文件
cat > index.html << 'EOF'
<!DOCTYPE html>
<html>
<head><title>我的第一个网站</title></head>
<body>
<h1>Hello, Git!</h1>
</body>
</html>
EOF
# 看看 Git 的反应
git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to track)
# 添加到暂存区
git add index.html
# 提交!
git commit -m "feat: 创建首页,Hello Git!"
[main (root-commit) a1b2c3d] feat: 创建首页,Hello Git!
1 file changed, 7 insertions(+)
create mode 100644 index.html💡 提示: 恭喜!你刚刚完成了人生中第一次 Git 提交!a1b2c3d是这次提交的"身份证号"(哈希值的前7位)。从此以后,Git 会忠实地记录你对这个项目做的每一次修改。