如何多端同步 Hexo 框架博客

多地同步的必要性

這個必要性其實不用多說,用著用著你就自己能體會到,比如頭天晚上在家里發(fā)布了一篇技術文章,第二天在公司 Coding 的過程中突然想到之前發(fā)的文某個地方有 Bug ,這時如果你的博客只搭在家里那臺 PC 上的話就只能等到下班回家去改,或者在 Coding 時突然靈感迸發(fā)寫出了連自己都佩服的神碼想要急于分享出去時,就只能蛋疼的憋著回家寫了,嗯,這可能就是最需要多地同步的場景了。

使用 U 盤

使用 Git

嗯,這才是正確的操作姿勢。
我的博客用的 Hexo 搭建的,所以接下來以此演示,其他使用 jekyll 或 wordpress 等框架搭建的博客同理可參考。

本地初始化一個 git 庫存放整個站點

比如我的 Blog 就放在D:\Pages\repos\Hexo-Blog庫下。

image.png

然后blog目錄就是整個站點的根目錄了,其實我們發(fā)布出去的站點就是public/目錄而已,其它的東西都是用來生成這個目錄的必要文件。

image.png

處理多層 git 庫嵌套的問題

由于站點主題是從 github 直接 pull 下來的,所以blog/themes/your-theme/應該也是一個 git 庫,git 庫不支持多層嵌套,但好像有個子 git 庫的概念但是處理起來較麻煩,所以這里我的解決方式很簡單粗暴 ———— 直接刪除blog/themes/your-theme/庫下的.git目錄讓它變成一個普通目錄,這樣就有一個不能直接同步更新主題的問題,但我感覺這并不是一個問題,因為主題的更新周期很長,非重大 Bug 或功能一般不會更新,而且主題和文章并不強關聯(lián),所以實在需要更新主題的新版本時可以先 pull 到別的目錄然后 copy 過來。

關聯(lián)到遠程倉庫

這里可能有同學感到懵逼,因為我在使用 Hexo & GitPage 搭建博客一文中為 Hexo 安裝了 deploygit 插件用來部署文章,這個插件也是和 git 倉庫關聯(lián)的,這里再次關聯(lián)一個遠程倉庫不就嵌套了嗎?當然不會,因為這個插件是安裝在本地的,可以直接使用 npm 安裝,所以這個插件沒必要提交到 git 倉庫,因此默認生成的.gitignore文件就已經(jīng)包含了.deploy*/以及其它一些可自動生成沒必要提交的目錄及文件。

blog/.gitignore file

.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
CNAME

遠程倉庫下的文件

image.png

Ok,到這里你可能已經(jīng)明白了這個多地同步的思路:打比方說這個 Hexo 框架及 Node.js 環(huán)境是個印鈔機,部署時它所生成的public/站點目錄就是鈔票,那么我們同時想在家里和公司印鈔怎么解決?印鈔機兩邊都一樣,那就是把印鈔的模板 fork 兩份出來,只需保證兩套模板的同步就能確保兩邊印出來的鈔票都是真的了。所以上面的遠程倉庫就相當于包含了整個印鈔模板,整體思路就是這么簡單。

關鍵部分的操作

同步了兩邊的環(huán)境都一致并且都可以使用 hexo clean && hexo d 部署文章后,還需注意的就是每次文章發(fā)布完成后執(zhí)行如下命令:

$ cd repos/Hexo-Blog/
$ git add .
$ git commit -m "commit msg."
$ git push origin master

每次開始寫文章之前執(zhí)行如下命令:

$ cd repos/Hexo-Blog/
$ git pull origin master

每天結束工作時都 commit 一下是個優(yōu)秀的習慣。

“偷懶是人類進步的原動力”

每次動一行代碼都要敲一堆命令來發(fā)布和同步?能不能一鍵搞定這些操作呢?當然可以,不要忘了 Windows 批處理,我們在 repos/Hexo-Blog/ 下創(chuàng)建三個 bat 腳本

blog-pub

cd /d D:/Pages/repos/Hexo-Blog/blog

hexo clean&&hexo d

pause

blog-pull

cd /d d:/Pages/repos/Hexo-Blog

git pull origin master

pause

blog-push

cd /d D:/Pages/repos/Hexo-blog

git add .
git commit -m "add post"
git push --all

pause

然后這些操作只需雙擊就能搞定了

既然做到這一步了,那么就能更進一步,我們可以給 Windows 設置一個定時任務,讓它開機拉代碼,下班前 push 代碼,以防忘記

1、打開任務計劃程序(taskschd.msc)

2、Alt+A+B 創(chuàng)建基本任務

setup1
setup2
setup3
setup4
setup5
setup6

經(jīng)過如上設置,在每天的 17:25 Win任務計劃程序就會自動執(zhí)行提交代碼的腳本了。

文中沒具體提到怎么創(chuàng)建倉庫,怎么關聯(lián)倉庫等等,這些都是 git 基礎知識,需要的同學可以參考 Git 常用命令。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 用到的組件 1、通過CocoaPods安裝 2、第三方類庫安裝 3、第三方服務 友盟社會化分享組件 友盟用戶反饋 ...
    SunnyLeong閱讀 15,195評論 1 180
  • 新的一期小二讀書會開始了,拖了兩天后終于補完了前兩天的書籍分享。 看過的書一定要有收獲,要有一些感受,或者說要有行...
    _巧克力_閱讀 368評論 0 0
  • 桃花灼灼,有舊時間的溫柔,喧囂了春光 成為今天說話的一枚理由,能夠 打濕寫作的遼闊 愛情的種子早已飽滿,仔細端詳桃...
    秉周閱讀 459評論 0 1
  • 木器會因為材質不同而呈現(xiàn)出不同的紋理和手感。撫摸它時,觸手的溫潤,任何材質都無法替代。 一直對木器情有獨鐘,覺得是...
    a83dcd5a612f閱讀 920評論 0 1
  • 人生中必定經(jīng)歷些悲歡離合,那些所謂的離與分讓人無法預料 昨日的攜手并肩 今日的渺無音訊 明日的不復存在 一切的一切...
    北海情話閱讀 252評論 0 1

友情鏈接更多精彩內容