RustDesk 分支日常更新同步
Fork 了 rustdesk 和 hbb_common 项目,创建了 my_dev 分支,目的是恢复旧版的内置服务器地址功能,并保持与上游项目同步更新。记录下同步上游源更改和保持自有修改的步骤:
GitHub 网页操作部分
在 GitHub 网页上完成以下操作:
- ✅ rustdesk 仓库:点击 “Sync fork” → “Update branch”,将 master 分支与上游同步
- ✅ hbb_common 仓库:点击 “Sync fork” → “Update branch”,将 main 分支与上游同步
- ✅ hbb_common 仓库:选择 my_dev 分支,一般情况下可以在网页上直接合并:点击 “Sync fork” → “Update branch”
本地同步步骤
1. 进入 RustDesk 主仓库目录
1 | cd D:\*****\rustdesk |
2. 同步本地 master 分支
1 | git checkout master |
说明:拉取你在 GitHub 网页上已同步过的 master 分支更新
3. 同步子模块的 main 和 my_dev 分支
1 | cd libs\hbb_common |
说明:
- 拉取子模块 main 分支(已在网页上同步过上游)
- 拉取子模块 my_dev 分支(已在网页上合并过 main)
4. 确保 master 分支使用最新的子模块 main
1 | git checkout master |
说明:如果子模块引用有更新,提交到 master 分支(如果没更新,commit 会提示无需提交)
5. 合并 master 到 my_dev 分支
1 | git checkout my_dev |
说明:将 master 的更新合并到 my_dev,这里可能会提示子模块冲突(预期行为)
6. 解决子模块冲突
1 | cd libs\hbb_common |
说明:让 my_dev 分支使用子模块的 my_dev 分支(而不是 main)
7. 检查是否有其他冲突
1 | git status |
说明:
- 如果显示 “Unmerged paths”,说明有文件冲突需要手动解决
- 手动编辑冲突文件,删除冲突标记
<<<<<<<、=======、>>>>>>> - 解决后运行:
git add <冲突文件>
8. 提交合并并推送
1 | git commit -m "Merge master into my_dev" |
说明:
- 完成合并提交
- 使用
refs/heads/my_dev避免推送时的引用歧义
9. 验证结果
1 | git status |
说明:检查工作区状态和最近的提交历史
完整一键命令(复制粘贴版)
如果没有冲突,可以直接复制以下命令一次性执行:
1 | cd D:\*****\rustdesk; ` |
注意:PowerShell 中使用反引号 ` 续行
故障处理
如果合并出错想重来
1 | # 放弃合并 |
如果子模块状态异常
1 | # 强制重新初始化子模块 |
如果推送失败
1 | # 使用完整引用推送 |
最终状态
同步完成后:
- 📦 主仓库 master 分支 → 使用子模块 main 分支(与上游完全同步)
- 🔧 主仓库 my_dev 分支 → 使用子模块 my_dev 分支(你的开发版本,已包含上游更新)
- 标题: RustDesk 分支日常更新同步
- 作者: Zhan Kui
- 创建于 : 2026-03-31 08:58:25
- 更新于 : 2026-03-31 14:37:35
- 链接: https://blog.120528.xyz/2026/03/31/63df5232/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论