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 |
|
設定本地儲存庫
若你還沒學過 Git(只有使用指令進行過 Hexo 操作),以下部分可以好好學起來,往後如果使用到 Git,以下指令將會很常用。基本上要將檔案部署到 Github 都會是使用以下指令。
建立本地儲存庫
記得我們在 Github 建立過儲存庫這件事情吧?你可以把它理解成是遠端的儲存庫,而如果我們要將檔案推送到遠端儲存庫,我們自己也要建立一個本地儲存庫。
執行本地儲存庫的指令為:
1 |
|
git init
的意思是在這個目錄建立 Git 儲存庫,讓整個目錄可以被 Git 進行追蹤。
建立後可以在自己的 Hexo 目錄出現一個 .git 目錄:
這個目錄是一個被隱藏的檔案,所以你如果點進來沒有看到的話,就要設定一下能夠顯示被隱藏的項目。以 Windows 為例,點選頂部選單的檢視後,將「隱藏的項目」勾選即可。
與遠端儲存庫進行連接
ok,再來就要連接遠端儲存庫了。首先到你放置 Hexo 的 Github 儲存庫複製你的儲存庫 Clone:
再來執行以下指令,來連接 Github 儲存庫:
1 |
|
基本上執行後不會給甚麼提示訊息。如果要看有沒有成功,可以到 /.git/config 這個檔案查看:
commit 你的檔案
基本上建議是每新增一篇文章或是有任何編輯時都可以 commit 一下,以確保最新版本都有被備份到。
將檔案從工作目錄移入索引區
專案目錄被 Git 追蹤後,當你有任何檔案的新增或是編輯,就會被歸類到所謂的工作目錄(代表跟前一版本有不同的更動之處),再來我們要將檔案加入到索引,以方便接下來 commit(更新版本)時,好歸類這些檔案都是屬於這次的 commit(更新)。
此時要執行的指令為:
1 |
|
這個指令就是將有更動的所有檔案移入索引區,如果只是想移入一個檔案就指定檔案名稱即可,不過通常是會將全部有更動的檔案一起移動到索引區啦,除非你有特別想紀錄不同的版本號。
對了,執行後可能會看到一堆 warning,基本上可以不用理會。如果下一步 commit 有成功的話就沒問題~
將索引區內的檔案 commit 成更新版本
1 |
|
我們要使用這段指令來更新 Git 版本,其中更新訊息可以撰寫這次你做了哪些更動(比如說是新增或編輯哪篇文章),以利日後需要時能夠方便辨別。
日後也可以透過指令 git log
或是上傳到 Github 後的 Commit 紀錄來查看更新過的版本紀錄。
部署到 Github 上
見證奇蹟的一刻到啦!接著要執行部署指令,即可將檔案部署到 Github 上。
如果你是透過本系列的教學來安裝 Hexo,基本上顯示到 Github Pages 的分支為 gh-pages(詳細可回去看 Day 11 講述部署到 Github Pages 那篇),那麼我們的備份檔案就要設定在不同的分支,這裡我們就取名為 master。(如果你正好 Github Pages 連接的分支為 master,那就取其它分支名稱)
1 |
|
部署成功的訊息大概長這樣:
此時我們在回來 Github 儲存庫,如果有看到新的分支與剛剛部署的檔案,恭喜你成功完成備份分支的部署啦!
參考資料
- Hexo備份至GitHub
- 在搜尋中使用萬用字元
- 六角學院 Git、Github 教學
- 我 Git 是看這系列影片學的,完成這篇文章時,有一併參考看這系列影片所記下來的筆記。
本篇文章同步發布於 iT 邦幫忙
本站所有文章除特別聲明外,均採用 BY-NC-SA 許可協議。轉載請註明出處!