最安全的hexo多臺電腦同步博客解決方案--非新建分支

本遷移解決方案博主親測有效,請放心遷移,遷移過程當中若是還遇到什麼問題歡迎和我交流。html

咱們常常有這樣一個需求場景:須要在多臺電腦間完成 Hexo 博客的撰寫和發佈,這就涉及到如何多臺電腦同步博客的問題。node

我最近也遇到了這個問題,網上看了不少方案。目前網上大部分 hexo 多電腦同步博客方案都是新建一個開源分支去存放博客源文件,可是你會發現,這樣作的話不少第三插件配置的appid、app_key等密鑰信息也暴露在了公開的倉庫裏,存在必定的數據安全隱患。git

那有沒有什麼辦法不暴露這些信息呢?對了,用一個私有倉庫來存放博客源文件不就結了嘛。雖然 Github 的私有倉庫是收費的,可是個人博客是同時部署在 Github 和 Coding 的,而 Coding 是能夠新建私有倉庫的。Nice,完美解決。github

當我準備寫遍博客來分享(xuan yao)想到的這個解決方案時,最後仍是榮幸的發現一遍文章已經分享了這個方案,只是在搜索引擎中不太好搜出來。本着「不重複造輪子的原則」,筆者就不重寫了,並且他已經寫的很好了。可是有幾個問題須要特別注意一下:npm

  1. 該文中刪除主題的 .git 配置,若是你有多個主題文件夾的話,須要都刪除(如 NexT 主題)。而後刪除的命令那位筆者不當心寫錯了,應該是: rm -rf ./themes/next/.git/安全

    用這條命令來刪除你對應主題文件夾裏的.git 文件夾,注意 .git 是一個隱藏文件夾。bash

  2. .gitignore 文件夾在 Hexo 的根目錄下可能已經存在了,能夠打開和該文中的忽略事項比對一下,若是同樣,接着 git init 初始化 git 倉庫就好;若是沒有該 .gitignore 文件夾就新建一個添加相應忽略事項再 git init 初始化。hexo

  3. 這點須要特別注意,不然可能致使遷移失敗:app

    雖然咱們第 1 步中刪除了主題的 .git 配置,第 2 步中Hexo項目根目錄的 .gitignore 文件也並無忽略掉 theme 這個文件夾。可是!! NexT 主題的文件夾原來是用 git 來管理的,裏面還有一個 .gitignore 文件,把 themes/next/source/lib 目錄下的不少文件給忽略掉了。工具

    這就致使了你上傳到私有倉庫時,你覺得你把 themes 文件下的全部內容都上傳到倉庫了,但其實 「偷偷」的把 themes/next/source/lib 目錄下的不少必要的文件也忽略掉了,並無上傳。而後在新電腦上拉下來的時候,hexo ghexo s 一預覽,你會奇怪的發現:全部的 FontAwesome 相關的圖標都不見了,其餘的功能一切正常。

    正確的作法是:在新機器上把私有倉庫上的博客源文件 clone 下來後,由於還缺點原來的文件,因此應該去原來機器上 themes/next/source/lib 目錄下,把整個 lib 目錄下的文件所有複製粘貼到新機器對應的 themes/next/source/lib 目錄下,這樣就能正常生成站點文件了。

    注意:同理,若是你的 themes 目錄下有多個主題配置文件的話,能夠查看是否有 .gitignore 文件,用 git 上傳私有倉庫時是否也忽略了一些必要資源,若是有再新電腦上對應複製過來就 OK 了。

    關於這個問題的詳情,能夠看這:github.com/theme-next/…

  4. 在新電腦上 npm install 下載 hexo 所需的環境的時候,要切到 hexo 的根目錄下,再執行 npm install

  5. 當你在新電腦用 npm install 下載依賴的第三插件時,因爲 node 的版本、衆多第三方插件、跨平臺等緣由,可能有的插件會存在兼容性問題,致使下載不下來,筆者想遷移到 Mac 上就遇到兼容性問題了,fsevent 插件目前不支持 node v11+ 版本,而剛配置新電腦的 node 環境時,默認安裝的是最新版的 node,須要下降 node 的版本才能下載成功。

    node 11 沒法安裝 fsevents 插件的解決方案

    至於如何下降 node 的版本,其實你不用刪除,有一個叫 nvm (Node Version Manager)的工具,專門用來管理多個版本的 node 環境的,你能夠下載多個版本的 node 存在你的機器中,用 nvm 的命令行就能夠實現不一樣版本 node 環境的隨意切換,很是方便。

    這是 nvm 的 github 地址

  6. 好,當你在新的電腦上寫完博客,本地預覽也沒問題,準備用 hexo d 部署到 Github 和 Coding 上前,別忘了把新電腦的 SSH 公鑰配置到 Github 和 Coding 上。

    而後用 hexo d部署時,因爲在新機器上,SSH 密鑰和以前的不同,第一次嘗試鏈接 Github 主機時會提示:

    The authenticity of host 'github.com' can't be established.

    Are you sure you want continue connecting?

    輸入 yes 就好,同理 coding 倉庫也會提示,一樣輸入yes。至此,新電腦上寫完的博客也成功同步更新到 Github 和 Coding 的倉庫上了。

    更新完博客後,記得 用 git push 將新電腦上改動的博客源文件也 push 到私有倉庫中,實現博客源文件的同步更新。

  7. 當你在另外一臺電腦上準備開始寫博客前,記得把遠程私有倉庫的最新博客源文件拉到本地,但記得不要用 git pull 的方式,用以下兩條命令:

    // 將遠程 git 倉庫上最新的內容拉取到本地,將本地庫所關聯的遠程庫更新至最新
    git fetch --all
    // 強制將本地庫的內容指向最新遠程倉庫的master分支
    git reset --hard origin/master  
    複製代碼

最後附上該篇博客的地址:

今後,你就能夠在多臺電腦間愉快地同步更新博客啦~

若到一臺新的電腦上,只要把博客源碼 clone 下來,配置好新機器的 nodehexogit 環境,隨時能夠發車~

也歡迎到個人獨立博客上查看更多的內容:最安全的 hexo 多電腦同步博客解決方案--非新建分支


2019.1.8 最新更新好消息是:Github 從 2019.1.8 日起能夠無償使用私有倉庫了,那你們也能夠選擇把博客源文件傳到 Github 私有倉庫上,維護起來更加方便了。

相關文章
相關標籤/搜索