临时分支应从main或release/*等稳定基线创建,命名需带时效性前缀(如test-、try-)并及时清理,不可替代git stash,适用于需独立提交历史或协作验证的实验场景。

临时分支不是“随便切一个就跑”,而是有明确边界和退出机制的隔离环境。直接在 main 或 develop 上试代码,等于把整条流水线停在半路等你擦屁股。
临时分支该从哪切?别从当前分支盲切
临时测试分支必须从一个已知干净、稳定、可回退的基线创建——通常是 main 或 release/* 分支的最新 HEAD,而不是你正在写的那个功能分支。
- ✅ 正确:
git checkout -b test-http-client main(从main切) - ❌ 危险:
git checkout -b test-http-client feature/login(若feature/login本身未合入,它可能含未验证逻辑) - ⚠️ 注意:如果项目约定用
develop作集成基准,那就切develop,但绝不能切feature/xxx或bugfix/xxx这类中间分支
临时分支命名要带时效性,不带歧义
名字得让人一眼看出“这玩意儿不该长期存在”。用 test-、try-、poctest- 前缀比 tmp 或 dev 更安全;结尾加日期或简短场景标识,能防止多人撞名。
- ✅ 推荐:
test-redis-pipeline-202606、try-mock-api-v2 - ❌ 隐患:
tmp(别人不敢删)、test(覆盖已有分支)、dev(和长期开发分支同名) - ? 小技巧:push 前先
git branch -r | grep test-看远程是否已有同名分支,避免覆盖他人临时工作
临时分支做完就删,别留“僵尸分支”
临时分支的价值只存在于“正在验证”的那段时间。验证完成(无论成功失败),本地和远程都该立刻清理。残留的 test-xxx 分支会干扰 git branch -a 输出,也容易被误 merge。
- ✅ 标准收尾流程:
git checkout main && git branch -d test-xxx && git push origin --delete test-xxx - ❌ 常见遗漏:只删了本地,忘了
git push origin --delete;或删了远程,但本地分支还在 - ⚠️ 注意:
git branch -d会拒绝删除未合并分支——这是保护机制,但对临时分支来说,**不合并才是常态**。确认无遗留修改后,用git branch -D test-xxx强删
为什么不用 git stash 替代临时分支?
git stash 解决的是“我当前改了一半,要切走干别的”,而临时分支解决的是“我要跑一段可能污染环境、需要独立 commit 历史、甚至要分享给同事看的实验代码”。两者场景不同,不能混用。
- ✅ 该用 stash 的情况:
git status显示有未提交改动,你要切到main拉新代码 - ✅ 该用临时分支的情况:要引入第三方 SDK 测试兼容性、要 mock 一个接口跑端到端、要验证某段重构是否破坏性能
- ⚠️ 警惕:把一堆
stash当临时分支用,最后git stash list里堆了 12 条,每条都叫WIP on main——这种“伪临时状态”比没分支更难追溯
真正难的不是建分支,是判断“这个实验值不值得单独开一分支”。只要涉及任何外部依赖变更、跨服务调用、或需要复现/分享的非原子操作,就该切。犹豫时,默认切——删比救容易得多。











