【GitHub】建立Git分支將Hexo部落格遷移到其它電腦

widiot1發表於2018-06-13

GitHub+Hexo搭建部落格的過程比較平滑,但是它的配置卻非常耗時間,一旦電腦出現問題或者需要在另外一臺電腦上寫部落格,那麼Hexo部落格的遷移非常就讓人頭疼。下面參考其他部落格的方法,整理出一個能在平時就管理重要檔案的方法,方便隨時遷移

必備檔案

Hexo部落格系統中影響遷移的只有一部分檔案和資料夾,所以只需要備份它們即可

檔案(夾) 說明
scaffolds/ 部落格文章的模版
source/ 所有部落格文章,以及about、tags、categories等page
themes/ 網站的主題
.gitignore 在push時需要忽略的檔案和資料夾
_config.yml 站點配置檔案
package.json 依賴包的名稱和版本號

我們要做的就是通過各種方式備份這些檔案和資料夾,比如說以下兩種靜態備份方式:

  1. 通過U盤或行動硬碟儲存
  2. 通過網盤儲存

上述兩種方式可以用於備份不經常改變的檔案,可是我們需要備份的比如部落格文章、Hexo配置檔案和主題配置檔案是需要經常更改的,所以需要其它方式動態備份

參考其它部落格瞭解到可以通過建立Hexo部落格系統的分支進行備份

建立分支目錄

先新建一個hexo資料夾,作為分支的工作目錄,用於儲存將要備份的檔案和資料夾

$ mkdir hexo

再把GitHub上的Hexo倉庫clone到hexo資料夾中

$ git clone https://github.com/widiot/widiot.github.io hexo

刪除除了.git資料夾的其它所有檔案和資料夾,主要是為了得到版本管理的.git。下面命令不會刪除隱藏檔案和資料夾

$ cd hexo
$ rm -r * 

最後把需要備份的檔案和資料夾都複製到hexo資料夾下,hexo的目錄結構應該如下

scaffolds/
source/
themes/
.git/
.gitignore
_config.yml
package.json

如果使用的主題是從GitHub克隆的,那麼主題資料夾下有Git管理檔案,需要將它們移除,我使用的是hexo-next,需要移除的檔案如下

$ rm -R themes/next/.git*

建立分支

建立一個叫hexo的分支

$ git checkout -b hexo

儲存所有檔案到暫存區

$ git add --all

提交變更

$ git commit -m "建立hexo分支"

推送到GitHub,並用--set-upstream與origin建立關聯,將hexo設定為預設分支

$ git push --set-upstream origin hexo

合併管理

現在我們的部落格系統有兩個需要管理的資料夾,一個是hexo,另一個是username.github.io,每次發表新文章都需要分別對這兩個資料夾進行提交管理,顯然是很蠢的行為

因為我們需要手動管理的只是hexo中的檔案,而.gitignore之外的檔案由Hexo管理,所以可以將這兩個資料夾進行合併管理

之前已經將需要備份的檔案加入了hexo分支,所以直接將hexo分支中的.git資料夾複製到username.github.io資料夾中

$ cp -a .git ../widiot.github.io

檢視當前的分支,確保處於hexo分支下

$ cd ../widiot.github.io
$ git branch -v

還需要移除主題目錄下的Git管理檔案

$ rm -R themes/next/.git*

檢視Git當前狀態,還需要對.gitignore檔案進行編輯,確保忽略不備份的檔案

$ git status

master分支的檔案則需要Hexo進行管理,編輯 _config.yml站點配置檔案,設定branch為master

deploy:
    type: git
    repo: https://github.com/widiot/widiot.github.io
    branch: master

發表文章

新建Markdown文章,編輯文章

$ hexo new test

將相關更改推送到hexo分支

$ git add .
$ git commit -m "發表文章test"
$ git push origin hexo

將靜態檔案推送到master分支

$ hexo clean # 如果配置檔案沒有更改,忽略該命令
$ hexo g -d

在GitHub上檢視hexo分支如下圖所示

遷移

將hexo分支克隆下來

$ git clone -b hexo https://github.com/widiot/widiot.github.io

然後安裝Hexo依賴

$ npm install

這樣就可以簡單的將Hexo部落格遷移到任何電腦上了 : )

只是每次發表新文章要輸入很多命令和密碼 : (

參考文章

  1. hexo換電腦
  2. 換了電腦如何使用hexo繼續寫部落格
  3. Hexo部落格從一臺電腦遷移到其他電腦

相關文章