Git 基础:开发者必会的 10 个命令(30 分钟入门)

不会 Git = 2025 年不会用 Office。Git 是每个开发者必会的工具——30 分钟入门,30 年受益。

一、Git 是什么?1 句话

Git = 代码的"时间机器"——记录每次修改,错了能回退,团队能协作。 生活例子:

  • 不用 Git:写代码 → 改坏了 → 完了
  • 用 Git:写代码 → 改坏了 → git revert 回到上一版本

二、5 分钟安装

# macOS
brew install git

# Windows
# 下载 https://git-scm.com/download/win
# 默认安装即可

# Linux
sudo apt install git

# 验证
git --version
# git version 2.43.0

三、5 分钟配置(必须)

git config --global user.name "你的名字"
git config --global user.email "you@example.com"

四、10 个必会命令

命令 1:git init(初始化)

mkdir my-project
cd my-project
git init
# Initialized empty Git repository in .git/

作用:把当前目录变成 Git 仓库

命令 2:git status(查看状态)

git status
# On branch main
# Untracked files:
#   main.py

作用:查看哪些文件被修改 / 新增 / 删除

命令 3:git add(加入暂存)

git add main.py      # 加单个
git add .             # 加所有

作用:把文件放入"待提交"区

命令 4:git commit(提交)

git commit -m "添加主程序"
# [main abc123] 添加主程序
# 1 file changed, 10 insertions(+)

作用:把暂存的文件"保存"到 Git 历史

命令 5:git log(看历史)

git log
# commit abc123 (HEAD -> main)
# Author: 你
# Date:   Mon Oct 7 10:00:00 2025
#
#     添加主程序

作用:看所有提交记录

命令 6:git diff(看修改)

git diff              # 未暂存
git diff --staged     # 已暂存

作用:看具体改了什么

命令 7:git branch(分支)

git branch                    # 列出分支
git branch feature/login      # 创建分支
git checkout feature/login    # 切换分支

作用:并行开发多个功能

命令 8:git merge(合并)

git checkout main
git merge feature/login

作用:把分支合回主线

命令 9:git push(推送到 GitHub)

git remote add origin https://github.com/you/repo.git
git push -u origin main

作用:把本地代码推送到 GitHub

命令 10:git pull(从 GitHub 拉取)

git pull origin main

作用:获取远程最新代码

五、3 大核心概念

概念 1:工作区 / 暂存区 / 仓库

工作区(你编辑的文件)
  ↓ git add
暂存区(准备提交的)
  ↓ git commit
仓库(Git 历史记录)

概念 2:分支(Branch)

main          ← 主分支(生产)
  ↑
  feature/login  ← 开发登录
  ↑
  feature/pay    ← 开发支付

每个分支独立,最后合并。

概念 3:远程仓库(Remote)

本地仓库
  ↓ git push
GitHub / GitLab 远程仓库
  ↓ git pull
本地仓库

六、5 大实战场景

场景 1:开始新项目

mkdir my-app
cd my-app
git init
echo "print('hello')" > main.py
git add .
git commit -m "init"

场景 2:修改代码

# 改了 main.py
git status          # 看到 main.py modified
git diff             # 看具体改了什么
git add main.py
git commit -m "fix bug"

场景 3:撤销修改

# 撤销未暂存的修改
git checkout main.py

# 撤销已提交
git revert HEAD       # 生成新 commit 撤销
git reset --hard HEAD~1  # 直接回退(危险)

场景 4:团队协作

# 克隆项目
git clone https://github.com/you/repo.git

# 创建分支开发
git checkout -b feature/my-feature

# 开发完推送
git add .
git commit -m "add my feature"
git push origin feature/my-feature

# 在 GitHub 创建 Pull Request

场景 5:发布版本

# 打 tag
git tag v1.0.0
git push --tags

七、3 大常见错误

错误 1:commit 信息乱写

# 错
git commit -m "update"
git commit -m "fix"

# 对
git commit -m "修复用户登录的密码验证 bug"
git commit -m "添加新功能:导出 Excel 报表"

错误 2:把 .env 提交

# 创建 .gitignore
echo ".env" >> .gitignore
echo "node_modules/" >> .gitignore
echo "__pycache__/" >> .gitignore

错误 3:直接 push 到 main

错:main 分支 = 部署环境
对:main 分支 = 稳定版本
   自己在 feature/xxx 分支开发

八、6 个月 Git 学习路径

Month 1:基础
□ 安装 + 配置
□ 用 10 个命令
□ 管理个人项目

Month 2:进阶
□ 用分支
□ 学 GitHub
□ 学 Pull Request

Month 3:协作
□ 加入 1 个开源项目
□ 提交 1 个 PR
□ 学 Code Review

Month 4-5:高级
□ 学 rebase
□ 学 conflict 解决
□ 学 Git Flow

Month 6:专家
□ 教新人
□ 写 Git 教程
□ 主导大型项目

九、5 大常见问答

Q1:Git 和 GitHub 是一回事吗? A:不是。Git 是工具,GitHub 是平台。还有 GitLab / Bitbucket。 Q2:commit 写中文还是英文? A:团队决定。推荐英文(国际化 + 工具兼容)。 Q3:commit 写多少字? A:50 字以内 + 主题 + 详情。 Q4:rebase 和 merge 区别? A:merge = 保留历史;rebase = 线性历史。新人用 merge。 Q5:怎么撤销已 push 的 commit? A:git revert <commit-id>(安全)或 git reset(危险)。

反思:Git 是开发者"基础设施"

不夸张地说:

不会 Git 的开发者 = 2025 年不会用 Email——会被淘汰。

立即开始:今天装 Git + 跑 10 个命令 = 你已经会 Git 的 60%。 未来 30 年,Git = 软件行业的"基础设施"——必会。