一站式 Git 修炼手册
——从 0 到 1,再到 100 的简洁实战指南
这份手册既是初学者的「电梯教程」,也是资深开发者的「速查表」。
按场景编排,每条命令都配有一句话「为什么」、一行「怎么做」和一个「避坑提示」,拿来即用,少走弯路。
1. 环境搭建:5 分钟完成 Linux 全链路
| 步骤 | 目的 | 命令 & 操作 | 避坑提示 |
|---|---|---|---|
| ① 注册 GitHub | 获得云端仓库 | 访问 github.com | 用户名以后很难改,想清楚再注册 |
| ② 生成 SSH 密钥 | 免输密码 | ssh-keygen -t ed25519 -C "you@example.com" |
4096-bit RSA 已过时,Ed25519 更快更安全 |
| ③ 上传公钥 | 让 GitHub 认识你的电脑 | cat ~/.ssh/id_ed25519.pub → GitHub Settings > SSH keys |
复制完整,不要多一个换行符 |
| ④ 验证 | 确保链路通 | ssh -T git@github.com |
看到 Hi username! 才算成功 |
2. 初始化与全局配置:一次设定,终身受益
git config --global init.defaultBranch main # 新建仓库默认分支叫 main
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global core.editor "code --wait" # VS Code 当默认编辑器
git config --global pull.rebase false # git pull 默认合并,不 Rebase
避坑提示:
- 定期检查
git config --global --list确保配置正确。 - 邮箱隐私保护:用 GitHub 提供的
username@users.noreply.github.com。
3. 本地工作流:文件从「改」到「存」的 4 步闭环
| 场景 | 命令 | 一句话解释 | 避坑提示 |
|---|---|---|---|
| 纳入版本控制 | git add <file> / git add -p |
精确选择改动,灵活控制提交内容 | 避免 git add . 误提交无关文件 |
| 拍照存档 | git commit -m "feat: add user login API" |
用 Conventional Commits 规范提交信息 | 提交信息清晰,利于自动化生成 CHANGELOG |
| 一键撤销 | git restore <file> |
快速撤销未提交的单文件修改(Git ≥ 2.23) | 先用 git status 检查状态,避免误操作 |
| 时间机器 | git reflog + git reset --hard HEAD@{n} |
查看历史操作,恢复到任意提交点 | 90 天内操作可恢复,定期备份关键分支 |
额外技巧:
- 用
git commit --amend修改最近一次提交信息或内容。 - 用
git diff预览改动,确保提交准确。
4. 分支策略:像 GitHub 官方一样玩转分支

| 高频操作 | 命令 | 一句话解释 | 避坑提示 |
|---|---|---|---|
| 新建功能分支 | git switch -c feature/payment |
创建并切换到新分支,隔离开发 | 永远不在 main 分支直接开发 |
| 同步远端分支 | git switch -t origin/feature/payment |
跟踪远程分支,自动关联 | 确保 git fetch 后操作,避免分支丢失 |
| 优雅合并 | git merge --squash feature/payment |
压缩多次提交,保持历史干净 | 合并前确认目标分支,避免冲突 |
| 强制同步 | git fetch && git reset --hard origin/main |
放弃本地改动,与远程保持一致 | 慎用,建议先备份本地改动 |
| 删除分支 | git branch -d feature/payment |
清理无用分支,保持仓库整洁 | 使用 -D 强制删除未合并分支 |
额外技巧:
- 用
git log --oneline --graph --all查看分支结构。 - 定期清理远程分支:
git push origin --delete feature/payment。
5. 远程协作:push / pull / fork 全场景速查
| 任务 | 命令 | 一句话解释 | 避坑提示 |
|---|---|---|---|
| 首次推送 | git push -u origin main |
推送并设置远程跟踪,简化后续推送 | 确保远程仓库存在 |
| 免冲突更新 | git pull --rebase |
将本地提交置于远程最新提交之上 | 先检查 git status,避免覆盖改动 |
| PR 前整理 | git rebase -i HEAD~3 |
合并琐碎提交,优化历史记录 | 提前备份,防止 Rebase 出错 |
| Fork 同步 | gh repo sync owner/repo --branch main |
使用 GitHub CLI 同步上游仓库 | 配置 upstream 远程:git remote add upstream <url> |
| 查看远程 | git remote -v |
显示所有远程仓库地址 | 定期检查,避免推送错误目标 |
额外技巧:
- 用
git push --force-with-lease代替--force,防止覆盖他人提交。 - 配置多个远程仓库:
git remote add <name> <url>。
6. 紧急救援:stash、reflog、bisect 三板斧
| 场景 | 指令 | 一句话解释 | 避坑提示 |
|---|---|---|---|
| 临时切分支 | git stash push -m "WIP: payment module" |
保存未提交改动,切换分支 | 用 git stash list 查看保存记录 |
| 恢复工作 | git stash pop |
恢复最近的 stash 并删除记录 | 冲突时用 git stash apply 保留记录 |
| 找丢失代码 | git reflog |
查看 90 天内 HEAD 移动记录 | 用 git show <hash> 确认提交内容 |
| 快速定位 BUG | git bisect start → git bisect good/bad |
二分查找定位问题提交 | 标记明确好坏提交,加快定位 |
额外技巧:
- 用
git stash push --include-untracked保存未跟踪文件。 - 自动 bisect:
git bisect run <script>执行测试脚本。
7. GitHub 高阶技巧:Actions、Issues、模板
-
Issue 模板
在.github/ISSUE_TEMPLATE/bug_report.yml创建 YAML 模板,规范问题反馈。
示例:name: Bug Report description: File a bug report body: - type: textarea attributes: label: Description description: A clear and concise description of the bug. -
Actions 自动 CI
在.github/workflows/ci.yml配置自动化测试和部署。
示例:name: CI on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Tests run: npm test -
CODEOWNERS
在.github/CODEOWNERS指定代码负责人:/src/backend/ @backend-team *.md @docs-team
避坑提示:
- 确保 Actions 使用最新版本的 actions(如
actions/checkout@v4)。 - 定期更新模板,避免信息过时。
8. 一张思维导图带走全部重点
(右键新标签页打开,可放大查看)

9. 最后的 3 条军规
- 任何 reset –hard / rebase 前,先
git branch backup/$(date +%F)。 - 提交信息用英文、50 字以内,前缀统一:
feat / fix / docs / style / refactor / test / chore。 - 不要把敏感信息(密码、Token) 塞进仓库;一旦推送,立即换新密钥。
想深挖?官方文档永远是最权威的答案:
• Git Book
• GitHub Docs
现在,打开终端,敲下你的第一条 git commit,开启高效协作之旅吧!
原文 https://blog.csdn.net/2301_79518550/article/details/147544971