第一步:身份配置(仅首次使用需要)
Git 需要知道你是谁,才能记录 "谁写了这段代码"。把下面的名字和邮箱换成你自己的(邮箱可以是注册 GitHub 的邮箱):
bash
运行
cpp
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@xxx.com"
实战场景:制作你的「2026 技术学习计划」
我们将创建一个文件夹,用 Git 来管理这个计划的每一次修改。
1. 初始化仓库(git init)
这就像在这个文件夹里 "种下" Git 的种子,告诉它:"从现在开始,这里的改动归你管了"。
bash
运行
cpp
# 1. 创建一个新文件夹并进入
mkdir my_2026_plan
cd my_2026_plan
# 2. 初始化 Git 仓库(关键步骤)
git init
执行完后,你的文件夹里会多出一个隐藏的 .git 目录,它就是 Git 的 "大脑"。
2. 首次提交(git add /git commit)
现在我们来做第一次 "快照"。
bash
运行
sql
# 1. 创建一个文件,随便写点内容(比如你的学习目标)
echo "2026年目标:精通 C++ 和 MySQL,找到理想工作!" > plan.md
# 2. 查看状态(非常重要的命令)
git status
此时你会看到 plan.md 是红色的,说明它是 "未被追踪" 的新文件。
cpp
# 3. 把它加入暂存区(相当于告诉 Git:下次拍照要带上它)
git add plan.md
# 4. 再次查看状态
git status
现在文件变成绿色了,说明它已经在 "待提交区" 了。
bash
运行
cpp
# 5. 正式提交(生成版本记录,-m 后面是备注,必须写!)
git commit -m "feat: 初始化2026年技术学习计划"
恭喜!你已经完成了第一个版本的提交。
3. 查看历史记录(git log)
想看看刚才的操作?用这个命令:
bash
运行
Dart
git log --oneline
你会看到一串黄色的哈希值(如 a1b3f2e)和你刚才写的备注。这串代码就是这个版本的 "身份证号"。
进阶实操:分支与合并(工作中最常用)
假设你现在要新增一个「SQL 学习子计划」 ,但又不想直接修改主计划(怕改坏了),这时候就需要分支(Branch)。
1. 创建并切换到新分支(git checkout -b)
bash
运行
cpp
# 创建一个叫 feature_sql 的分支,并立即切换过去
git checkout -b feature_sql
(可以用 git branch 命令查看,当前分支前面会有个 * 号。)
2. 在新分支上做修改
bash
运行
cs
# 给 plan.md 追加内容(学习 MySQL 的具体计划)
echo -e "\nMySQL 学习计划:\n1. 学习基础 SQL 语句\n2. 掌握索引优化" >> plan.md
# 查看文件内容,确认追加成功
cat plan.md
# 提交这次修改
git add plan.md
git commit -m "feat: 添加MySQL学习详细计划"
此时,feature_sql 分支比 main 分支多了一次提交。
3. 切换回主分支看看
bash
运行
cs
git checkout main
cat plan.md
你会发现,刚才写的 MySQL 计划不见了!这就是分支的隔离性,非常安全。
4. 合并分支(git merge)
现在你的 SQL 计划写好了,要把它合并回主计划:
bash
运行
# 确保你在 main 分支上,然后执行合并
git merge feature_sql
终端会显示 Fast-forward(快进合并)。再次查看 plan.md,内容已经完美合并了!
最后一步:模拟 "后悔药"(git checkout --)
这是新手最需要的救命技巧。假设你在 main 分支上不小心把文件改乱了:
bash
运行
cpp
# 故意写点错误内容
echo "这是错误的内容" > plan.md
cat plan.md # 确认内容被改坏了
# 救命!放弃修改,恢复到上一次提交的状态
git checkout -- plan.md
cat plan.md # 看,又恢复正常了!
实操总结(建议收藏)
这套流程就是你未来每天都会用到的 Git 基本功:
- 修改代码 ->
git status(看状态) - 保存 ->
git add .(全部暂存) - 拍照 ->
git commit -m "备注信息" - 开发新功能 ->
git checkout -b 分支名 - 完成后合并 ->
git checkout main->git merge 分支名