---
title: "5 分钟 Git 入门：按场景学命令，小白也能上手"
canonical_url: https://ah.b2.ink/52.html
date: 2026-07-01T11:57:30Z
author: xiaoye
categories: 技术
---

# 5 分钟 Git 入门：按场景学命令，小白也能上手

> 按拿代码/改代码/合并代码等场景学 Git 命令，小白也能上手。

> Git 是代码的”时光机 + 多人协作”工具。不想背命令？先装图形工具 **SourceTree**（sourcetreeapp.com）点鼠标就能用；也可用 **VS Code 内置 Git 面板**或 **GitHub Desktop**，更简单。下面按你会遇到的场景来学。

## 场景1：怎么拿到代码？

-   已有本地仓库想更新 → `git pull`
-   从头下载 → `git clone https://xxx.git`

## 场景2：怎么改代码？

① 切到分支 `git checkout 分支名` → ② 编辑器里改 → ③ 放进暂存区 `git add` → ④ 提交 `git commit` → ⑤ 推送 `git push`

## 场景3：怎么合并代码？

① 确保暂存区干净（改动要么提交、要么 `git stash` 存起来）→ ② 切到目标分支 `git checkout B` → ③ 合并 `git merge A` → ④ 有冲突先解决再 `git commit` → ⑤ `git push`

## 场景4：合并冲突怎么办？

-   **格式化引起的大量冲突**：和队友约定同一个格式化工具（如 Prettier）；合并前先统一格式化并提交再合。
-   **业务代码真冲突**：先排除格式化因素，再找对应代码作者确认”哪段要、哪段不要”，手动合。

## 场景5：推送后发现代码有错，怎么让队友拿到正确版本？

-   **（不推荐）强制覆盖**：通知队友先别推，本地改对后 `git push --force`。缺点：**会丢历史**，已拉取的队友要回退/重克隆。
-   **（推荐）补一次提交**：直接改好，再 `git commit` 提交一版即可。

## 场景6：想知道某行代码是谁、什么时候改的？

用 `git blame 文件名`：会逐行显示”这行是哪次提交、哪个人、什么时候”改的。

> 图形工具更直观：SourceTree / VS Code 里对着文件右键选 “Blame / 注释” 即可，不用记命令。

## 场景7：想对比现在和以前的代码差别？

-   改了还没提交，看改了啥 → `git diff`
-   和上一次提交对比 → `git diff HEAD`
-   看某个文件的历次改动 → `git log -p 文件名`  
    
    > 图形工具里点两个版本直接左右对比，最省事。
    

## 场景8：两个项目要同时维护同一个模块？

把这个公共模块抽成一个**独立仓库**，再用 **子模块** `git submodule add https://模块仓库.git` 在两个项目里各引用一份。以后模块改了，在模块仓库提交一次，两个项目各自更新引用即可——一处修改、两处同步，不用复制粘贴。

## 场景9：三个月前的提交有 bug，只想回退那一部分？

别整体回退（会把后面的好代码也带没）。  
– 先 `git log` 找到出问题的那次提交的编号；  
– 只撤销那一次改动、保留历史 → `git revert <提交编号>`；  
– 只想还原某个文件到旧版本 → `git checkout <提交编号> -- 文件名`。

## 场景10：只想从别的分支挑几个功能过来（不整分支合并）？

用 `git cherry-pick <提交编号>`：像”摘樱桃”一样，从别的分支挑出你要的那几次提交，单独搬到当前分支。适合”生产分支只想提前上测试分支里的某个功能”这种情况。

## 场景11：怎么更优雅地管理代码？

-   **分支规范**：`main` 放稳定可上线的、`dev` 日常开发、每个新功能开一个 `feature/xxx` 分支，做完再合回去。
-   **提交规范**：一次提交只做一件事，提交信息写清楚”改了什么”。
-   **用 `.gitignore`**：把不该进仓库的（密钥、node\_modules、编译产物）挡在外面。
-   **合并前先 `git pull` 拿最新 + 跑一遍测试**，减少冲突和事故。

## 附：远程仓库怎么建、怎么和本地关联

**① 在 GitHub / Gitee 建仓库**：登录 → New repository（新建仓库）→ 填个名字 → 创建（新手建议**不要勾**“初始化 README”，空仓库更好关联）。

**② 把本地代码推上去**（在你项目文件夹里依次执行）：

```
git init
git remote add origin https://你的仓库地址.git
git add .
git commit -m "init"
git push -u origin main
```

以后再改，重复”改 → `git add` → `git commit` → `git push`“就行。
