GitPuk分支管理实战指南
GitPuk 分支管理入门与实战
理解分支的基本概念
分支是 GitPuk(或 Git)的核心功能之一,允许开发者在不同的代码版本上独立工作,而不会影响主分支(如 main 或 master)。每个分支代表一个独立的开发线,适用于功能开发、错误修复或实验性代码的测试。
常见的分支类型包括:
- 主分支(main/master):稳定的生产环境代码。
- 开发分支(develop):集成多个功能分支的中间分支。
- 功能分支(feature/xxx):用于开发新功能。
- 热修复分支(hotfix/xxx):紧急修复生产环境问题。
- 发布分支(release/xxx):准备新版本发布。
创建与切换分支
使用 git branch 查看当前分支,git checkout 或 git switch 切换分支:
# 查看所有分支
git branch -a
# 创建新分支
git branch feature/new-login
# 切换到新分支
git checkout feature/new-login
# 或使用更现代的语法
git switch feature/new-login
# 创建并直接切换分支
git checkout -b feature/new-login
合并分支
合并是将一个分支的更改整合到另一个分支的过程。常用的合并方式有两种:
1. 普通合并(Merge)
保留完整的分支历史,生成一个新的合并提交:
git checkout main
git merge feature/new-login
2. 变基合并(Rebase)
将分支的提交历史线性化,避免额外的合并提交:
git checkout feature/new-login
git rebase main
变基后需在目标分支上执行快进合并:
git checkout main
git merge feature/new-login
解决合并冲突
当两个分支修改了同一文件的相同部分时,Git 会提示冲突。冲突文件会包含类似以下内容:
<<<<<<< HEAD
当前分支的代码
=======
要合并的分支的代码
>>>>>>> feature/new-login
手动编辑文件,删除冲突标记并保留需要的代码,然后标记为已解决:
git add conflicted-file.txt
git commit -m "Resolved merge conflict"
删除分支
合并完成后,可以删除不再需要的分支:
# 删除本地分支
git branch -d feature/new-login
# 强制删除未合并的分支
git branch -D feature/new-login
# 删除远程分支
git push origin --delete feature/new-login
远程分支管理
远程分支是托管在 GitPuk(或 GitHub/GitLab)上的分支,需通过 git push 和 git fetch 同步:
# 推送本地分支到远程
git push -u origin feature/new-login
# 拉取远程分支到本地
git fetch origin
git checkout -b feature/new-login origin/feature/new-login
实战:基于分支的工作流
-
功能开发流程
- 从
develop分支创建feature/xxx分支。 - 开发完成后提交并推送到远程。
- 发起 Pull Request(PR)或 Merge Request(MR)到
develop分支。
- 从
-
热修复流程
- 从
main分支创建hotfix/xxx分支。 - 修复后合并到
main和develop分支。
- 从
-
发布流程
- 从
develop分支创建release/1.0分支。 - 测试并修复问题后,合并到
main和develop。
- 从
高级技巧
-
交互式变基(Interactive Rebase):整理提交历史(如合并多个小提交)。
git rebase -i HEAD~3 -
Cherry-Pick:选择性地复制某个提交到当前分支。
git cherry-pick abc1234 -
分支保护规则:在 GitPuk 平台设置分支保护,禁止直接推送到
main分支,强制通过 PR/MR 合并。
通过合理使用分支管理,团队可以高效协作,确保代码的稳定性和可维护性。
BbS.okane102.info/PoSt/1121_482060.HtM
BbS.okane103.info/PoSt/1121_898460.HtM
BbS.okane104.info/PoSt/1121_353704.HtM
BbS.okane105.info/PoSt/1121_415652.HtM
BbS.okane106.info/PoSt/1121_306870.HtM
BbS.okane107.info/PoSt/1121_871468.HtM
BbS.okane108.info/PoSt/1121_696157.HtM
BbS.okane109.info/PoSt/1121_367489.HtM
BbS.okane110.info/PoSt/1121_636978.HtM
BbS.okane111.info/PoSt/1121_582228.HtM
BbS.okane102.info/PoSt/1121_354432.HtM
BbS.okane103.info/PoSt/1121_933500.HtM
BbS.okane104.info/PoSt/1121_302598.HtM
BbS.okane105.info/PoSt/1121_245739.HtM
BbS.okane106.info/PoSt/1121_011828.HtM
BbS.okane107.info/PoSt/1121_402251.HtM
BbS.okane108.info/PoSt/1121_606073.HtM
BbS.okane109.info/PoSt/1121_800009.HtM
BbS.okane110.info/PoSt/1121_464600.HtM
BbS.okane111.info/PoSt/1121_318465.HtM
BbS.okane112.info/PoSt/1121_273760.HtM
BbS.okane113.info/PoSt/1121_424016.HtM
BbS.okane114.info/PoSt/1121_459629.HtM
BbS.okane115.info/PoSt/1121_310858.HtM
BbS.okane116.info/PoSt/1121_512516.HtM
BbS.okane117.info/PoSt/1121_845493.HtM
BbS.okane118.info/PoSt/1121_584455.HtM
BbS.okane119.info/PoSt/1121_695982.HtM
BbS.okane120.info/PoSt/1121_902017.HtM
BbS.okane121.info/PoSt/1121_162837.HtM
BbS.okane112.info/PoSt/1121_563710.HtM
BbS.okane113.info/PoSt/1121_891961.HtM
BbS.okane114.info/PoSt/1121_015262.HtM
BbS.okane115.info/PoSt/1121_778242.HtM
BbS.okane116.info/PoSt/1121_824847.HtM
BbS.okane117.info/PoSt/1121_350992.HtM
BbS.okane118.info/PoSt/1121_227400.HtM
BbS.okane119.info/PoSt/1121_813675.HtM
BbS.okane120.info/PoSt/1121_718207.HtM
BbS.okane121.info/PoSt/1121_153580.HtM
BbS.okane112.info/PoSt/1121_825063.HtM
BbS.okane113.info/PoSt/1121_450195.HtM
BbS.okane114.info/PoSt/1121_840448.HtM
BbS.okane115.info/PoSt/1121_423209.HtM
BbS.okane116.info/PoSt/1121_558924.HtM
BbS.okane117.info/PoSt/1121_566814.HtM
BbS.okane118.info/PoSt/1121_190667.HtM
BbS.okane119.info/PoSt/1121_495751.HtM
BbS.okane120.info/PoSt/1121_420207.HtM
BbS.okane121.info/PoSt/1121_031422.HtM
BbS.okane112.info/PoSt/1121_477547.HtM
BbS.okane113.info/PoSt/1121_515688.HtM
BbS.okane114.info/PoSt/1121_231890.HtM
BbS.okane115.info/PoSt/1121_628725.HtM
BbS.okane116.info/PoSt/1121_412488.HtM
BbS.okane117.info/PoSt/1121_105039.HtM
BbS.okane118.info/PoSt/1121_725363.HtM
BbS.okane119.info/PoSt/1121_994567.HtM
BbS.okane120.info/PoSt/1121_862680.HtM
BbS.okane121.info/PoSt/1121_754878.HtM
BbS.okane112.info/PoSt/1121_884392.HtM
BbS.okane113.info/PoSt/1121_259532.HtM
BbS.okane114.info/PoSt/1121_750997.HtM
BbS.okane115.info/PoSt/1121_612015.HtM
BbS.okane116.info/PoSt/1121_621827.HtM
BbS.okane117.info/PoSt/1121_860882.HtM
BbS.okane118.info/PoSt/1121_935185.HtM
BbS.okane119.info/PoSt/1121_507297.HtM
BbS.okane120.info/PoSt/1121_608409.HtM
BbS.okane121.info/PoSt/1121_166190.HtM
BbS.okane112.info/PoSt/1121_712831.HtM
BbS.okane113.info/PoSt/1121_951462.HtM
BbS.okane114.info/PoSt/1121_014365.HtM
BbS.okane115.info/PoSt/1121_157501.HtM
BbS.okane116.info/PoSt/1121_986149.HtM
BbS.okane117.info/PoSt/1121_803798.HtM
BbS.okane118.info/PoSt/1121_533861.HtM
BbS.okane119.info/PoSt/1121_380418.HtM
BbS.okane120.info/PoSt/1121_606848.HtM
BbS.okane121.info/PoSt/1121_963646.HtM

