Git 很强大,但它有复杂的名声。它包含数百个命令和标志,但大多数开发者每天只依赖一小部分。如果你学会本指南中的八个命令,你可以在几乎任何 Git 项目中自信地工作,无需记住其余的。
8 个基本命令
1. git status
使用它来检查你工作区的状态。它显示哪些文件已更改、哪些文件已暂存、你在哪个分支上,以及你的分支是否领先或落后于远程。这个命令是你的主要仪表板。
git status2. git add .
这会暂存你的更改,使它们准备好提交。点号表示"添加所有更改的内容"。如果你更喜欢更有选择性,你也可以暂存单个文件。
git add .
# 或暂存特定文件:
git add src/index.js3. git commit -m ""
提交会创建你工作的快照。引号内的消息应描述为什么进行了更改。好的提交消息在以后审查历史或调试问题时节省时间。
git commit -m "Add user authentication flow"4. git pull --rebase
这会使用远程的最新更改更新你的本地分支。--rebase 标志通过将你的提交重新播放到最新的上游提交之上来保持提交历史整洁。这避免了不必要的合并提交并减少了冲突噪音。
git pull --rebase为什么用 rebase? 没有它,每次拉取时你都会得到合并提交,用"Merge branch 'main' into main"消息弄乱你的历史。
5. git push
这会将你的提交上传到 GitHub、GitLab 或任何其他远程。推送会将你的工作保存到服务器、备份它,并使其可用于拉取请求和团队协作。
git push
# 新分支的第一次推送:
git push -u origin feature/my-branch6. git switch <branch>
这是切换到另一个分支的现代方式。它简单、清晰,不会意外修改你的文件。
git switch main
git switch feature/login如果分支不存在,创建它:
git switch -c new-branch7. git merge <branch>
这会将指定的分支合并到你当前所在的分支。正确的顺序是首先切换到你想更新的分支,然后将另一个分支合并到其中。
git switch main
git merge feature/login8. git checkout -
这会返回到上一个分支及其工作状态。这是一个非常有用的快捷方式,也是 git checkout 仍然推荐的为数不多的现代用法之一。
git checkout -
# 等同于分支的 "cd -"快速参考
| 命令 | 作用 |
|---|---|
git status |
显示工作区状态 |
git add . |
暂存所有更改 |
git commit -m "msg" |
创建提交 |
git pull --rebase |
从远程更新(干净历史) |
git push |
上传提交 |
git switch <branch> |
切换分支 |
git merge <branch> |
将分支合并到当前分支 |
git checkout - |
返回上一个分支 |
现代 Git:Switch vs Checkout
从 Git 2.23 开始,事情变得更简单了。Git 引入了两个新命令 git switch 和 git restore,将分支切换与文件恢复分开。这一变化使每个命令的意图清晰,特别是对新开发者而言。旧的 git checkout 命令过于臃肿,试图做太多不相关的事情。
这是现代 Git 使用的简单规则集:
| 命令 | 用途 |
|---|---|
git switch |
切换分支 |
git checkout - |
返回上一个分支 |
git checkout |
不应该用于切换分支(除了短横线快捷方式) |
总结
如果你掌握这八个命令,你将在几乎每个日常 Git 工作流中都很有效,无需任何高级知识。关键见解是使用 git switch 用于分支,保留 git checkout 仅用于短横线快捷方式。
对于其他一切——变基、挑选提交、二分法——你需要时可以查找。这八个命令涵盖了你每天 95% 的工作。
Fred
AUTHORFull-stack developer with 10+ years building production applications. I write about cloud deployment, DevOps, and modern web development from real-world experience.
Need a developer who gets it?
POC builds, vibe-coded fixes, and real engineering. Let's talk.
Hire Me →
