快轉到主要內容

Hugo主題透過git submodule更新到最新版

分類   資訊科技 Hugo網站架設
標籤   Hugo Theme
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

長期維護Hugo網站,有二個事情要考量

一個是Hugo主程式的版本

一個是主題的版本,或者準確的說,使用的主題是第幾個git commit版本

Hugo主程式常常有在更新,語法偶爾會變化,故更新之後要改寫你的主題。若是使用別人做的主題,也要定期追蹤上游變更,否則會建置失敗。

有常常在更新的Hugo主題,多半會指定Hugo主程式版本,Hugo版本太舊或太新都會建置失敗。

故,如何更新Hugo主題便成為一個問題。若是直接套用主題還好,git pull覆蓋即可,但如果你又額外在主題上做了一些layout override,就得手動合併變更。

1. 不更新Hugo的做法
#

是的你可以選擇不要更新,讓Hugo版本停留在固定版本。畢竟Hugo主程式只是一個二進位檔,取得舊版本很容易。雲端部署的時候也能夠指定Hugo版本。

如果Linux是透過套件管理器安裝Hugo的,可以用一些手段防止它自動更新(如apt mark),再不濟還有直接下載特定版本二進位檔的做法。

至於Hugo主題,通常可以用git commit去鎖定版本。在git submodule add時候,它就會自動記住那個版本。日後git clone的時候會自動下載那個commit的主題。

2. 使用git submodule更新主題
#

以我用的 Blowfish主題為例,我是透過git submodule安裝的。

更新主題前,請先git push所有變更到遠端儲存庫。

為了不影響到主幹,做一個新branch

git branch dev
git checkout dev

由於我不會直接改主題原始碼,而是用 layout override的方式去覆寫,所以能夠安心的直接拉取最新版。

更新git submodule,拉取遠端最新commit

git submodule update --remote --merge

3. 查看上游變更
#

接著開git diff,比對程式碼。

Visual Studio Code是個不錯的工具。

手動比對修改過的檔案,再更新到最新版。

確認可以了之後再git branch -m回master。

相關文章

我的Hugo網站換主題紀錄 ~ 從簡潔的MemE移植到功能多樣的Blowfish主題
分類   資訊科技 Hugo網站架設
標籤   Hugo Theme
如何修改自訂Hugo主題:程式碼覆寫(layout override)
分類   資訊科技 Hugo網站架設
標籤   Hugo Theme
「站中有站」 ~ 同一Hugo網站使用二個以上主題的做法
分類   資訊科技 Hugo網站架設
標籤   Hugo Theme

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。