【GitHub】建立Git分支將Hexo部落格遷移到其它電腦
GitHub+Hexo搭建部落格的過程比較平滑,但是它的配置卻非常耗時間,一旦電腦出現問題或者需要在另外一臺電腦上寫部落格,那麼Hexo部落格的遷移非常就讓人頭疼。下面參考其他部落格的方法,整理出一個能在平時就管理重要檔案的方法,方便隨時遷移
必備檔案
Hexo部落格系統中影響遷移的只有一部分檔案和資料夾,所以只需要備份它們即可
檔案(夾) | 說明 |
---|---|
scaffolds/ | 部落格文章的模版 |
source/ | 所有部落格文章,以及about、tags、categories等page |
themes/ | 網站的主題 |
.gitignore | 在push時需要忽略的檔案和資料夾 |
_config.yml | 站點配置檔案 |
package.json | 依賴包的名稱和版本號 |
我們要做的就是通過各種方式備份這些檔案和資料夾,比如說以下兩種靜態備份方式:
- 通過U盤或行動硬碟儲存
- 通過網盤儲存
上述兩種方式可以用於備份不經常改變的檔案,可是我們需要備份的比如部落格文章、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部落格遷移到任何電腦上了 : )
只是每次發表新文章要輸入很多命令和密碼 : (