</>小白学编程.dev
工具与效率·7 分钟阅读·作者:小白学编程

Git 完全入门:从一无所知到会用 8 个命令

不靠死记硬背,理解 Git 的「心智模型」,让你在 30 分钟内搞清提交、分支、合并、回滚等核心操作。

你为什么需要 Git?

如果你写过这种文件名:

作业-最终版.docx
作业-最终版-真的最终版.docx
作业-最终版-真的不改了.docx
作业-最终版-不改了交了.docx

那么你就已经感受到了没有版本控制的痛苦。

Git 解决的问题是:让你能随时记录、对比、回滚代码的每一次改动,并且能与他人协作。

心智模型:先把这张图刻进脑子

理解 Git,最重要的不是命令,而是它把代码分成 4 个区域

┌─────────────────┐  git add     ┌─────────────────┐  git commit  ┌─────────────────┐
│  工作区          │ ──────────►  │  暂存区          │ ──────────►  │  本地仓库        │
│ Working Dir      │              │  Staging Area    │              │  Local Repo      │
└─────────────────┘              └─────────────────┘              └─────────────────┘
                                                                          │
                                                                          │ git push
                                                                          ▼
                                                                  ┌─────────────────┐
                                                                  │  远程仓库        │
                                                                  │ GitHub / GitLab  │
                                                                  └─────────────────┘
区域 是什么
工作区 你正在编辑的文件
暂存区 你"挑出来"打算提交的改动
本地仓库 已经"打包成一个版本"存进历史
远程仓库 推送到 GitHub 等平台的副本

核心三步循环:编辑 → git addgit commitgit push

第 1 步:装上 Git

macOS:

# 多数 Mac 都自带,没有的话:
brew install git

Windows:

第一次用必须配置身份:

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

第 2 步:8 个命令足够你用 80% 的场景

1. git init — 初始化一个 Git 仓库

mkdir my-blog
cd my-blog
git init

这一步会在目录里产生一个 .git/ 隐藏文件夹。所有的 Git 魔法都在这里面

2. git status — 我现在的状态?

git status

新手最该养成的习惯:每次操作前后都 git status 一次。它会告诉你:

  • 哪些文件被修改了?
  • 哪些文件已经放进暂存区?
  • 当前分支是什么?

3. git add — 把改动挑进暂存区

git add index.html         # 单个文件
git add src/               # 一个目录
git add .                  # 所有改动(最常用)

4. git commit — 记录一个版本

git commit -m "feat: 添加首页骨架"

关于 commit message 的建议

写得清楚、未来的你会感谢现在的你。推荐使用约定式提交

前缀 含义
feat: 新增功能
fix: 修复 bug
docs: 文档改动
refactor: 重构(不改变行为)
style: 格式调整
test: 测试相关
chore: 杂事

5. git log — 查看历史

git log
git log --oneline           # 一行显示,更清爽
git log --oneline --graph   # 带分支图

q 退出查看。

6. git diff — 我到底改了啥?

git diff                  # 查看工作区的改动
git diff --staged         # 查看暂存区的改动

7. git branchgit checkout — 分支与切换

git branch                  # 看所有分支
git branch feature/login    # 新建分支
git checkout feature/login  # 切换分支
git checkout -b feature/login  # 新建并切换(最常用)

现代写法是 git switch,但 checkout 更通用,记一个就够了。

8. git pushgit pull — 与远程同步

git push origin main       # 推送到远程的 main 分支
git pull origin main       # 拉取最新代码

第 3 步:连上 GitHub

  1. 在 GitHub 创建一个新仓库(不要勾选 README)
  2. 复制 SSH 或 HTTPS 链接
  3. 在本地执行:
git remote add origin git@github.com:USERNAME/REPO.git
git branch -M main
git push -u origin main

-u 参数让本地分支和远程分支建立追踪关系,以后直接 git push 即可。

一个完整的工作流(背下来!)

# 1. 拉取最新代码
git pull

# 2. 新建一个特性分支
git checkout -b feature/add-search

# 3. 编辑代码……

# 4. 查看改动
git status
git diff

# 5. 提交
git add .
git commit -m "feat: 添加站内搜索"

# 6. 推送
git push -u origin feature/add-search

# 7. 在 GitHub 上发起 Pull Request → 等待 review → 合并

# 8. 回到 main,更新本地
git checkout main
git pull

救命三招(出错了也别慌)

A. 撤销工作区的修改

git restore index.html        # 还没 add 的,回到上次提交时的样子

B. 把已 add 的文件取消暂存

git restore --staged index.html

C. 改错了 commit message?

git commit --amend -m "新的提交信息"

⚠️ 仅限还没 push 的情况。已经推上去的不要 amend。

五条新手最容易踩的坑

  1. 不写 .gitignore → 把 node_modules/ 一起提交了。
  2. 直接在 main 分支上写代码 → 一旦犯错,全队遭殃。
  3. commit 一次 50 个改动 → 哪天出 bug 你回滚不了。
  4. commit message 写"修复" → 三个月后看不懂自己写了啥。
  5. 强推(git push -f)到公共分支 → 队友的提交会被你"吃掉"。

一份可以贴在墙上的速查表

看状态        git status
查改动        git diff
提交流程      git add . ─► git commit -m "..." ─► git push
新分支        git checkout -b feature/xxx
切回主线      git checkout main && git pull
合并          git merge feature/xxx
回滚单个文件  git restore <file>
撤销 add      git restore --staged <file>
看历史        git log --oneline --graph

「合抱之木,生于毫末。」每一次有意义的 commit,都是大项目的起点。

把上面这八个命令、三招"救命术"、一个工作流操练一周,你就会进入"用 Git 像用筷子一样自然"的阶段。

📖 相关阅读