Day 23:將你的 Hexo 使用 Git 指令備份到 Github 儲存庫另一個分支

我們都說備份很重要,因此定時備份 Hexo 就是我們必學的其中一個功課之一啦!我們對 Hexo 的更新與編輯都是在本機上運行,萬一有一天電腦可能一個不小心當機資料都沒有了,而 Hexo 本身的編輯資料也葬送其中的話… 就會有點麻煩啦!因此今天要跟大家介紹該如何利用 Git 指令備份到 Github 儲存庫另一個分支。

首先我們先來認識「.gitignore」這個檔案

並不是所有檔案都要推送上去備份

我們並不是所有目錄或是檔案都要推送上去的,例如像是目錄 public,這個目錄即是 Hexo 產生出的靜態檔,因此平常我們在執行部署指令 hexo d 時,已經將這些檔案推送到 Github Pages 了,也就是我們平常所瀏覽的部落格。

另外還有像是 node_modules 等與其他目錄或檔案,也基本上都是不用特別去備份,主要我們需要備份的是平常所編輯的 .md 檔案、網站設定檔。此時我們就要利用「.gitignore」這個檔案來幫我們過濾掉不需要部署上去的部分。

.gitignore 用途

這個檔案位於根目錄,用於 Git 部署檔案上去時,符合裡面的目錄或檔案條件時,就不會被推送上去。Hexo 本身就有撰寫好預設幾個不用推送上去的目錄或檔案:

1
2
3
4
5
6
7
.DS_Store # 不推送 .DS_Store 檔案
Thumbs.db # 不推送 Thumbs.db 檔案
db.json # 不推送 Tdb.json 檔案
*.log # 不推送副檔名為 .log 的檔案(星號為萬用字元,代表任何數目的字元)
node_modules/ # 不推送目錄 node_modules 與其內檔案
public/ # 不推送目錄 public 與其內檔案
.deploy*/ # 不推送開頭為 .deploy 的目錄

設定本地儲存庫

若你還沒學過 Git(只有使用指令進行過 Hexo 操作),以下部分可以好好學起來,往後如果使用到 Git,以下指令將會很常用。基本上要將檔案部署到 Github 都會是使用以下指令。

建立本地儲存庫

記得我們在 Github 建立過儲存庫這件事情吧?你可以把它理解成是遠端的儲存庫,而如果我們要將檔案推送到遠端儲存庫,我們自己也要建立一個本地儲存庫。

執行本地儲存庫的指令為:

1
2
3
4
# 指向自己的 Hexo
cd /c/30blog/ # cd /你的 Hexo 目錄位置/
# 建立本地儲存庫
git init

git init 的意思是在這個目錄建立 Git 儲存庫,讓整個目錄可以被 Git 進行追蹤。

建立儲存庫

建立後可以在自己的 Hexo 目錄出現一個 .git 目錄:

.git 目錄

這個目錄是一個被隱藏的檔案,所以你如果點進來沒有看到的話,就要設定一下能夠顯示被隱藏的項目。以 Windows 為例,點選頂部選單的檢視後,將「隱藏的項目」勾選即可。

勾選隱藏的項目

與遠端儲存庫進行連接

ok,再來就要連接遠端儲存庫了。首先到你放置 Hexo 的 Github 儲存庫複製你的儲存庫 Clone:

儲存庫 Clone

再來執行以下指令,來連接 Github 儲存庫:

1
2
git remote add origin 你的儲存庫 Clone 位置
# Clone 位置:https://github.com/你的 Github 帳號/你的 Github 帳號.github.io.git

基本上執行後不會給甚麼提示訊息。如果要看有沒有成功,可以到 /.git/config 這個檔案查看:

查看是否成功設定遠端儲存庫資訊

commit 你的檔案

基本上建議是每新增一篇文章或是有任何編輯時都可以 commit 一下,以確保最新版本都有被備份到。

將檔案從工作目錄移入索引區

專案目錄被 Git 追蹤後,當你有任何檔案的新增或是編輯,就會被歸類到所謂的工作目錄(代表跟前一版本有不同的更動之處),再來我們要將檔案加入到索引,以方便接下來 commit(更新版本)時,好歸類這些檔案都是屬於這次的 commit(更新)。

此時要執行的指令為:

1
git add .

這個指令就是將有更動的所有檔案移入索引區,如果只是想移入一個檔案就指定檔案名稱即可,不過通常是會將全部有更動的檔案一起移動到索引區啦,除非你有特別想紀錄不同的版本號。

對了,執行後可能會看到一堆 warning,基本上可以不用理會。如果下一步 commit 有成功的話就沒問題~

將索引區內的檔案 commit 成更新版本

1
git commit -m "更新訊息"

我們要使用這段指令來更新 Git 版本,其中更新訊息可以撰寫這次你做了哪些更動(比如說是新增或編輯哪篇文章),以利日後需要時能夠方便辨別。

日後也可以透過指令 git log 或是上傳到 Github 後的 Commit 紀錄來查看更新過的版本紀錄。

部署到 Github 上

見證奇蹟的一刻到啦!接著要執行部署指令,即可將檔案部署到 Github 上。

如果你是透過本系列的教學來安裝 Hexo,基本上顯示到 Github Pages 的分支為 gh-pages(詳細可回去看 Day 11 講述部署到 Github Pages 那篇),那麼我們的備份檔案就要設定在不同的分支,這裡我們就取名為 master。(如果你正好 Github Pages 連接的分支為 master,那就取其它分支名稱)

1
2
git push -u origin master
# git push -u origin 分支名稱

部署成功的訊息大概長這樣:

Git 部署成功

此時我們在回來 Github 儲存庫,如果有看到新的分支與剛剛部署的檔案,恭喜你成功完成備份分支的部署啦!

Github 儲存庫新分支

參考資料

本篇文章同步發布於 iT 邦幫忙