Git 新手快速上手笔记
这篇适合谁
如果你刚开始学 Git,还没完全分清工作区、暂存区、提交历史和远程仓库之间的关系,先看这一篇最合适。
目标不是一次学完所有命令,而是先建立一套“能稳定做事、不容易把仓库搞乱”的最小工作流。
先记住 Git 的最小模型
可以把 Git 理解成下面这条流水线:
工作区 -> git add -> 暂存区 -> git commit -> 本地仓库 -> git push -> 远程仓库
四个核心概念:
- 工作区:你当前正在编辑的文件。
- 暂存区:下一次提交准备带上的内容。
- 本地仓库:已经提交到本地历史里的版本。
- 远程仓库:GitHub、GitLab、Gitee 上的仓库副本。
初学时只要把这件事记住,很多命令就不会混。
第一次使用先做的配置
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global core.editor vim
检查配置:
git config --list
如果你还没配过环境,可以再看 安装和配置 Git。
两种开始方式
方式一:新建一个自己的仓库
mkdir my-project
cd my-project
git init
git status
第一次提交:
git add .
git commit -m "init: first commit"
方式二:克隆一个已有仓库
git clone <repository-url>
cd <repository-folder>
git status
新手先学会的 8 个核心命令
| 命令 | 用途 | 新手理解方式 |
|---|---|---|
git status | 看当前状态 | 每次不确定时先敲它 |
git add | 把改动放进暂存区 | 告诉 Git“这些改动准备提交” |
git commit -m | 生成一次本地提交 | 把暂存区内容写进历史 |
git log --oneline | 看提交历史 | 快速回顾最近提交 |
git diff | 看还没暂存的改动 | 提交前先核对内容 |
git switch | 切换分支 | 比 checkout 更清楚 |
git pull | 拉取远程更新 | 先同步再继续开发 |
git push | 推送到远程 | 把本地提交同步出去 |
每天最常用的一套工作流
1. 开始前先看状态
git status
git branch --show-current
2. 开新任务时单独拉一个分支
git switch -c feature/login
3. 修改文件后先检查
git status
git diff
4. 确认无误后加入暂存区并提交
git add <file>
git commit -m "feat: add login page"
如果要一次加入当前目录全部改动:
git add .
5. 第一次推送新分支
git push -u origin $(git branch --show-current)
以后同一分支再推送通常只需要:
git push
先学会看懂 git status
最常见的几种状态:
?? file.txt:未跟踪文件,Git 还没接管它。M file.txt:工作区已修改,但还没git add。M file.txt:修改已经进入暂存区。A file.txt:新文件已经暂存。D file.txt:删除操作已经暂存。
如果你老是搞不清自己现在处于什么状态,优先读 查看当前 Git 仓库中的文件。
新手最容易遇到的 6 个问题
1. git add 加错了文件
git restore --staged <file>
详细说明见 Git 撤销 git add 操作指南。
2. 工作区改乱了,不想要了
git restore <file>
详细说明见 Git 丢弃工作区已跟踪改动指南。
3. 出现很多临时文件、构建文件
git clean -nd
git clean -fd
详细说明见 Git 清理未跟踪文件指南。
4. 做到一半要切去处理别的任务
git stash push -u -m "wip"
详细说明见 Git stash 暂存现场指南。
5. 刚提交就后悔了,但还没推送
git reset --soft HEAD~1
详细说明见 Git 撤销提交指南。
6. 已经推送了错误提交
git revert <commit>
详细说明见 Git revert 指南。
新手先不要乱用的命令
下面这些命令不是不能学,而是不建议在没理解后果时直接上手:
git reset --hardgit push -fgit rebasegit cherry-pickgit filter-repo
原因很简单:它们更容易改写历史、覆盖本地改动,或者让协作分支变得难以理解。
一个足够实用的学习顺序
第一阶段:先把“日常提交”学会
重点只学:
git status
git add
git commit
git log --oneline
git push
第二阶段:学会“撤销”和“恢复”
重点看:
第三阶段:学会“分支协作”
重点看:
第四阶段:再学高级主题
重点看:
最后给新手的三个建议
- 每次不确定时,先敲
git status,不要靠猜。 - 先理解“工作区 / 暂存区 / 提交历史”,再去学各种撤销命令。
- 在共享分支上,优先使用安全、可回溯的方式,不要把
force push当日常操作。