新功能不要直接改 main:先建分支
什么时候需要分支
这些情况建议创建新分支:
- AI 要跨多个文件修改一个功能。
- 你想试一个不确定能不能成功的方案。
- 团队成员正在同时修改项目。
- 你准备提交 Pull Request。
只是在自己还没提交的文件里修一个字,并不意味着必须创建十个分支。分支的目的,是把一项完整任务和稳定的 main 隔开。
用修路来理解
main 像已经开放通车的主路。你要改十字路口,不会直接在主路中央边试边改,而是先开一条施工支线。
text
main A ─── B ───────────── E
\ /
fix-homepage-typo C ─── D ─────C 和 D 是你在分支上的 commit。检查通过后,Merge 把它们的结果放回 main。
第一步:先让 main 保持最新和干净
bash
git switch main
git status
git pull --ff-only只有 git status 没有显示未保存修改时,再开始新任务最清楚。
第二步:创建并立刻切换到新分支
bash
git switch -c fix-homepage-typotext
switch 切换分支
-c 同时创建一个新分支
分支名 说明这条分支只做什么分支名可以按任务写:
text
fix-mobile-menu
add-login-page
docs-explain-api-key不要只写 new、test、branch1,一个月后没人知道它负责什么。
第三步:确认自己真的站在新分支
bash
git branch --show-current预期看到:
text
fix-homepage-typo现在的修改和 commit 都会进入这条支线,而不是 main。
第四步:修改、验证并提交
bash
git status
git diff
git add docs/index.md
git commit -m "修正首页标题错别字"分支不会替你检查代码。你仍然需要运行项目和测试。
第五步:第一次把分支上传到 GitHub
bash
git push -u origin fix-homepage-typo-u 会记住本地分支对应哪个远程分支。以后继续修改、commit 后,通常只需 git push。
分支什么时候算完成
不是 push 后就完成,而是:
- 本地验证通过。
- 变化已经 commit 和 push。
- Pull Request 检查通过。
- 分支已经 Merge 进入 main。
合并以后怎样清理
先回到 main 并拿到合并结果:
bash
git switch main
git pull --ff-only确认 main 已经包含修改,再删除本地旧分支:
bash
git branch -d fix-homepage-typo-d 会在分支尚未合并时阻止删除,适合初学者。不要为了省事直接使用强制删除。
常见失败
branch already exists
这个名字已经存在。运行 git branch 查看,然后用 git switch 分支名 切过去,或者换一个清楚的新名字。
切换分支时提示会覆盖本地修改
先不要强行切换。当前文件还有未保存进 commit 的变化。先确认变化属于哪项任务,再 commit 或撤销。
在错误分支上改了代码
先停下来,不要继续 commit 或强推。小白最安全的处理方式是先运行 git status 和 git diff,保存输出,再请 AI 根据当前状态给出精确迁移步骤。
创建新分支以后,main 上的内容会立刻消失吗?
答案:不会。新分支通常从当前 main 的状态开始,先拥有相同文件;之后产生的新 commit 才让两条路线逐渐不同。