最近一直忙於工作,很久沒有維護網站了。今天檢查更新時發現很多依賴項都有了新版本,因此記錄下這次更新維護的過程。
我的項目基於 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
|
⚔️ 衝突處理:如果合併時遇到衝突,仔細檢查衝突文件中的 <<<<<<<、======= 和 >>>>>>> 標記,選擇保留適合的代碼。