Skip to content

新功能不要直接改 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-typo
text
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 后就完成,而是:

  1. 本地验证通过。
  2. 变化已经 commit 和 push。
  3. Pull Request 检查通过。
  4. 分支已经 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 才让两条路线逐渐不同。

写给想驾驭 AI,而不只是依赖 AI 的 Vibe Coder。