本文是《程序猿叨叨叨》系列文章中的其中一篇菊值,想要了解更多相關(guān)的文章,歡迎猛戳藍(lán)字前往閱讀腻窒。
前情提要
前幾天使用hexo搭建了Github博客昵宇,今天在公司的電腦上想要同步Github博客到本地,遇到了點(diǎn)坑儿子,查詢了 一下網(wǎng)上的資料,現(xiàn)在記錄一下,也算給遇到同樣問(wèn)題的小伙伴們一個(gè)參考蒋譬。
多設(shè)備同步
同步思路與Github推拉源碼思路相同割岛,使用git指令,保持本地的博客文件與Github上的博客文件相同即可癣漆,其步驟如下:
- 使用hexo搭建部署Github博客
// 在本地博客根目錄下安裝hexo
npm install hexo
// 初始化hexo
npm init
// 安裝依賴
npm install
// 安裝部署相關(guān)的配置
npm install hexo-deployer-git
詳情參考這里
-
上傳博客工程
上一步部署博客到Github以后,我們可以在Github倉(cāng)庫(kù)的master分支上看到我們上傳的博客文件剂买。
Github主分支
但是這個(gè)博客文件是不包含hexo配置的瞬哼,所以我們需要新建分支,使用git指令將帶hexo配置的Github工程文件上傳到新建的分支上结胀。
Github上新建分支
在本地博客根目錄下使用git指令上傳項(xiàng)目到Github:
// git初始化
git init
// 添加倉(cāng)庫(kù)地址
git remote add origin https://github.com/用戶名/倉(cāng)庫(kù)名.git
// 新建分支并切換到新建的分支
git checkout -b 分支名
// 添加所有本地文件到git
git add .
// git提交
git commit -m ""
// 文件推送到hexo分支
git push origin hexo
- 其他設(shè)備上clone下Github上新建的分支的文件到本地
在另一臺(tái)設(shè)備上使用git指令下載Github新建分支上的文件:
// 克隆文件到本地
git clone -b 分支名 https://github.com/用戶名/倉(cāng)庫(kù)名.git
-
本地寫(xiě)文章
在source
->_posts
文件夾下新建md文件把跨,并編輯好保存后:
部署到Github
// 安裝hexo
npm install hexo
// 注意這里不需要hexo初始化:hexo init;否則之前的hexo配置參數(shù)會(huì)重置
// 安裝依賴庫(kù)
npm install
// 安裝部署相關(guān)配置
npm install hexo-deployer-git
- 同步項(xiàng)目源文件到Github
// 添加源文件
git add .
// git提交
git commit -m ""
// 先拉原來(lái)Github分支上的源文件到本地着逐,進(jìn)行合并
// 分支名后面的“--allow-unrelated-histories”是為了彈出“fatal: refusing to merge unrelated histories.”的錯(cuò)誤
git pull origin 分支名 --allow-unrelated-histories
// 比較解決前后版本沖突后崔赌,push源文件到Github的分支
git push origin 分支名
至此多設(shè)備同步到此為止。
問(wèn)題解決
由于公司里的電腦是win 10所以在部署博客的過(guò)程中會(huì)遇到一些問(wèn)題耸别,整理如下:
-
Deployer not found: git
在終端執(zhí)行命令:
npm install hexo-deployer-git --save
然后繼續(xù)執(zhí)行hexo deploye
指令進(jìn)行部署健芭。
-
fatal: could not read Username for ‘ https://github.com ‘: Invalid argument
由于使用的是https協(xié)議,安全性較高秀姐,所以系統(tǒng)終端不允許部署慈迈,所以我們?cè)撚?ssh,修改本地博客hexo配置文件_config.yml省有,將repository參數(shù)修改如下:
repository: ssh://git@github.com/iNerdStack/inerdstack.github.io
繼續(xù)執(zhí)行hexo deploye
指令進(jìn)行部署痒留。
-
Could not read from remote repository
這是因?yàn)橄到y(tǒng)沒(méi)有添加github的ssh信任到本機(jī),所以我們要在命令行執(zhí)行:
ssh -T git@github.com
yes