--- title: 備份 Hexo 原始檔案至 GitHub tags: Hexo --- # 備份 Hexo 原始檔案至 GitHub ## 前言 Hexo 可以快速的將編輯好的 markdown 文件轉換成靜態網頁,並發布到 GitHub 上。但 Hexo 所發布的檔案僅限於最終的 html 文件,並沒有將原本的 markdown 文件與其他設定檔上傳。如果本地端檔案損毀或遺失, GitHub 上會只剩下最後生成的靜態網頁,要再對其進行編輯或新增會是一件很麻煩的事。因此在這邊紀錄如何將 Hexo 的原始檔案備份至 GitHub,這樣即使遇到檔案損毀,也只要重新從 GitHub 上把檔案拉下來就可以快速的回復之前的狀態。 ## 準備工作 已經建好一個 GitHub repository,且使用 Hexo 將靜態網頁發布至某 branch(此處假設為 master)。如果不確定 Hexo 靜態網頁發布的 branch,可以透過 `_config.yml` 查看或修改。 ``` _config.yml deploy: type: github repository: https://github.com/my_repo_host/my_blog.git branch: master ``` ## 操作過程 1. 在 Hexo 的主目錄下,初始化 Git repository,並連結到 Hexo 所在的 remote repository ```bash git init git remote add origin git@github.com:my_repo_host/my_blog.git ``` 2. 建立另一個用來備份原始檔案的 branch ```bash git checkout -b backup ``` 3. 確認 `.gitignore` 的規則 ```bash vim .gitignore ``` Hexo 會自動生成 `.gitignore`,其內容應該如下: ``` .DS_Store Thumbs.db db.json *.log node_modules/ public/ .deploy*/ ``` 4. 將所有檔案加入 Repository ,並推到 GitHub 上 ```bash git add . git commit -m "First commit." git push -u origin backup ``` 5. 以後新增或修改內容後,可以透過以下指令備份到 GitHub ```bash git add . git commit "Add or Edit something." git push origin backup ``` --- ## 參考資料 * [備份 Hexo 源文件至 GitHub](http://www.leyar.me/backup-your-blog-to-github/) * [Hexo + Github - 備份與發布](http://bbandydd.github.io/blog/2016/06/05/hexo-backup/)