如何更新基于Pterodactyl的自定义项目至指定分支版本?
升级自定义Pterodactyl代码库至v1.10.4/Develop分支
前置操作
- 先把本地所有修改提交完毕:
git add . && git commit -m "pre-upgrade: 提交所有本地修改" - 创建独立的升级分支,避免破坏主分支代码:
git checkout -b upgrade-to-v1.10.4(如果目标是develop分支,可命名为upgrade-to-develop) - 添加官方Pterodactyl仓库作为上游远程(未添加过的话):
git remote add upstream https://github.com/pterodactyl/panel.git
拉取目标版本代码
- 拉取上游仓库的最新代码:
git fetch upstream - 若目标是v1.10.4稳定版,拉取对应标签:
git fetch upstream tag v1.10.4 - 若目标是develop分支,直接拉取该分支:
git fetch upstream develop
执行版本合并/变基
选项1:Merge(推荐,保留自定义提交历史)
- 合并目标版本到当前升级分支:
- 稳定版:
git merge v1.10.4 - Develop分支:
git merge upstream/develop
- 稳定版:
- Git会自动合并无冲突的文件,遇到冲突时会暂停并提示冲突文件
选项2:Rebase(整理提交为线性历史)
- 变基到目标版本:
- 稳定版:
git rebase v1.10.4 - Develop分支:
git rebase upstream/develop
- 稳定版:
- 冲突出现时Git会暂停,解决后执行
git rebase --continue继续;需跳过当前提交用git rebase --skip;放弃变基用git rebase --abort
手动处理冲突
- 查看冲突文件列表:
git status,标记为both modified的就是冲突文件 - 打开冲突文件,Git会用以下标记区分内容:
<<<<<<< HEAD:你的自定义修改代码=======:冲突内容分隔线>>>>>>> [目标分支/版本]:上游的最新代码
- 手动编辑文件,保留需要的逻辑,删除冲突标记
- 单个文件冲突解决后,暂存该文件:
git add <冲突文件名> - 所有冲突解决完成后:
- Merge场景:执行
git commit(Git会自动生成合并提交信息,可按需修改) - Rebase场景:执行
git rebase --continue
- Merge场景:执行
验证与推送
- 本地测试功能,确保自定义修改和上游更新兼容
- 测试通过后,推送升级分支到私有仓库:
git push origin upgrade-to-v1.10.4 - 可在私有仓库发起PR,合并到主分支(如需代码审核)
后续维护
- 后续更新时重复上述流程,先拉取上游最新代码再合并/变基
- 建议定期同步上游bug修复,减少后续升级的冲突量
内容的提问来源于stack exchange,提问作者OpenSource
相关产品推荐
相关产品推荐

