核心内容摘要
域名停靠2025免费推广步骤
开源代码二次开发的背景问题基于开源项目进行二次开发时经常会遇到如下的代码冲突问题团队成员 使用开源代码进行二次开发。
开源代码维护人员更新了代码。
问题团队成员的二次开发代码 和 开源代码维护人员的代码产生冲突。
分支管理流程图本地仓库远程仓库定期拉取更新合并上游更新创建功能分支完成开发稳定后合并推送上游仓库upstream/master个人Fork仓库origin/master本地master分支跟踪上游local/master本地develop分支集成测试local/develop本地feature分支功能开发local/feature-*本地custom分支自定义修改local/feature-custom分支用途与管理表分支名称类型用途说明更新频率合并方向upstream/master远程分支原始开源项目的主分支作为代码来源不定期仅拉取不推送origin/master远程分支个人Fork仓库的主分支用于备份开发完成后接收本地推送local/master本地分支严格跟踪上游保持与上游一致上游更新时从upstream拉取local/develop本地分支集成测试分支合并上游更新和功能开发功能完成时从master合并接收feature合并local/feature-*本地分支短期功能分支每个新功能独立分支功能开发期间从develop创建合并回developlocal/custom本地分支长期自定义分支包含所有二次开发修改持续更新从develop合并可推送到origin
详细git完整工作流程可使用pycharm或idea替代
初始设置#
Fork原始仓库到个人账户#
克隆个人Fork仓库gitclone https://github.com/your-username/project.gitcdproject#
添加上游远程仓库gitremoteaddupstream https://github.com/original-owner/project.git#
创建本地分支gitcheckout -b master upstream/master# 跟踪上游gitcheckout -b develop# 开发分支gitcheckout -b custom# 自定义分支
日常开发流程#
从develop创建功能分支gitcheckout developgitpull origin developgitcheckout -b feature/new-feature#
在feature分支开发# ... 编写代码提交更改 ...gitadd.gitcommit -mfeat: 添加新功能#
完成功能后合并到developgitcheckout developgitmerge feature/new-featuregitbranch -d feature/new-feature#
测试通过后合并到customgitcheckout customgitmerge develop
集成上游更新流程#
拉取上游最新代码到mastergitcheckout mastergitpull upstream master#
将上游更新合并到developgitcheckout developgitmerge master# 或使用 git rebase master#
解决可能的合并冲突# ... 手动解决冲突 ...gitadd.gitcommit -mmerge: 集成上游更新#
将更新同步到custom分支gitcheckout customgitmerge develop
其他事项实践要点说明定期同步每周至少拉取pull一次上游更新避免积压大量冲突小步提交频繁提交Commit小改动便于追踪和回滚分支清理及时删除已合并的feature分支保持仓库整洁标签管理为重要版本打标签Tagv
1.