仓库结构与提交流程
先把 Git 仓库粗暴地理解成四层就够用了:工作区 -> 暂存区 -> 本地仓库 -> 远程仓库

这四层分别在干什么
工作区
就是你现在在编辑器里真正改的那堆文件。
暂存区
它不是“临时备份区”,更像是本次提交的候选清单。你可以把工作区里的一部分改动挑出来,先放进暂存区,准备组成下一个 commit。
本地仓库
执行 git commit 之后,改动会变成一个正式的提交节点,先落在你本地。
远程仓库
执行 git push 之后,别人才能看到你的提交。
TIP
commit 只是提交到本地仓库,不等于已经同步给团队。
场景 1:正常做完一个需求,准备提交
这是最常见的路径。
shell
git status
git add .
git commit -m "feat: 新增登录页表单校验"
git push如果是第一次推送本地新分支,一般会多一步:
shell
git push -u origin feature/login-form-u 的作用是建立本地分支和远程分支的跟踪关系。第一次设完,后面通常直接 git push 就够了。
场景 2:我只想提交一部分改动
这个场景在真实开发里非常常见,比如你一边改需求,一边顺手修了个小问题,但这两件事不应该落在同一个 commit 里。
这时不要上来就 git add .,更适合用:
shell
git add -p-p 是按代码块选择要不要进入暂存区。它不花哨,但很实用,能明显改善提交质量。
场景 3:开始工作前,先把仓库同步到最新
如果你是从主干切新分支,我自己的习惯是先同步主干,再开始写代码。
shell
git switch main
git pull --ff-only
git switch -c feature/login-form--ff-only 的意思是只允许快进更新。它的好处是:如果本地主干已经有额外提交,不会悄悄帮你做一次 merge,让主干历史变得更乱。
场景 4:本地已经提交了,但还没推送
这时你要记住一个判断标准:只要还没推送到远程,很多动作都还有比较大的腾挪空间。
比如:
- 提交说明写错了,可以
git commit --amend - 想拆 commit,可以用
git reset - 想整理历史,可以用
git rebase -i
这类操作后面会分章节展开写。
常见坑
git add .太顺手,容易把临时文件、调试代码、顺手改动一起带进去- 工作区不干净时就去
pull,后面一旦冲突,现场会更乱 - 以为
commit完就结束了,结果根本没push,别人看不到你的代码


