最近一直忙于工作,很久没有维护网站了。今天检查更新时发现很多依赖项都有了新版本,因此记录下这次更新维护的过程。
我的项目基于 volantis-x/hexo-theme-volantis 的 Fork。首先,我将其 Fork 到自己的 GitHub 仓库,并将其 Clone 到项目的 themes/volantis 文件夹中,作为整个项目的子模块(在 .gitmodules 中进行了配置)。这个子模块包含了我自定义的配置,现在我既想保留这些修改,又希望能够同步上游仓库的最新版本。
🔄 完整更新流程
1️⃣ 在子模块中同步上游更新
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| cd themes/volantis
git remote add upstream https://github.com/volantis-x/hexo-theme-volantis
git remote -v
git status
git fetch upstream
git merge upstream/7.x
|
⚠️ 注意:
- 如果合并没有冲突,Git 会自动创建合并提交。
- 如果有冲突,需要手动解决后执行以下命令:
1 2
| git add . git commit -m "解决合并冲突"
|
2️⃣ 更新分支名称(从 6.0 改为 7.x)
1 2 3 4 5 6 7 8 9 10 11
| git checkout 6.0
git branch -m 7.x
git push origin -u 7.x
git push origin --delete 6.0
|
3️⃣ 在主项目中记录子模块更新
1 2 3 4 5 6 7 8 9 10 11
| cd ../..
git add themes/volantis
git commit -m "更新 volantis 子模块到 7.x 版本"
git push
|
🔑 关键要点
🔒 分支安全:删除旧的 6.0 分支不会影响 7.x 分支的提交历史,因为 Git 分支只是指向提交的指针。
🧪 测试建议:在删除旧分支前,先确认新版本工作正常。可以通过创建备份标签来实现:
1 2
| git tag backup-6.0-final 6.0 git push origin backup-6.0-final
|
⚔️ 冲突处理:如果合并时遇到冲突,仔细检查冲突文件中的 <<<<<<<、======= 和 >>>>>>> 标记,选择保留适合的代码。