(Ⅰ)基于Hexo+GitHub Page搭建博客,绑定域名及备份
前言
這里引用阮一峰老師網(wǎng)絡日志里說的,對于喜歡寫博客的人,會經(jīng)歷三個階段:
第一階段,剛接觸 Blog,覺得很新鮮,試著選擇一個免費空間來寫。
第二階段,發(fā)現(xiàn)免費空間限制太多,就自己購買域名和空間,搭建獨立博客。
第三階段,覺得獨立博客的管理太麻煩,最好在保留控制權(quán)的前提下,讓別人來管,自己只負責寫文章。
大多數(shù)博客作者,都停留在第一和第二階段,因為第三階段不太容易到達:你很難找到俯首聽命、愿意為你管理服務器的人。
但是其實該情況早已改變,很多程序員早已在 GitHub 網(wǎng)站上搭建 Blog。他們既擁有絕對管理權(quán),又享受 GitHub 帶來的便利——不管何時何地,只要向主機提交 commit,就能發(fā)布新文章。更妙的是,這一切還是免費的,GitHub 提供無限流量,世界各地都有理想的訪問速度。
好了,本文就來講如何在 GitHub 上搭建博客及采用 Git 分支進行文章備份。
基于 Hexo+GitHub Page 搭建博客的教程,網(wǎng)上這樣的文章很多,在這之前我也記錄過一篇 基于Hexo+GitHub Page搭建免費個人博客教程。網(wǎng)上相關(guān)文章也很多:
- hexo從零開始到搭建完整
- 利用GitHub Pages建立項目或個人網(wǎng)站
- 在win7中一步一步安裝Hexo搭建個人博客
- 了解githubPages+hexo搭建博客的原理
- 利用GitHub Pages建立項目或個人網(wǎng)站
- …
本文主要是梳理搭建步驟,特別地,本文主要特點有采用 Git 分支進行對博客源文章進行備份。
1. 博客搭建
在搭建過程之前,先了解下 npm。
先簡單介紹下 npm:npm 是 Node 的模塊管理器,功能極其強大。它是 Node 獲得成功的重要原因之一。正因為有了 npm,我們只要一行命令,就能安裝別人寫好的模塊 。npm install命令用來安裝模塊到 node_modules目錄。
NPM 是隨同 NodeJS 一起安裝的包管理工具,能解決 NodeJS 代碼部署上的很多問題,常見的使用場景有以下幾種:
- 允許用戶從 NPM 服務器下載別人編寫的第三方包到本地使用。
- 允許用戶從 NPM 服務器下載并安裝別人編寫的命令行程序到本地使用。
- 允許用戶將自己編寫的包或命令行程序上傳到 NPM 服務器供別人使用。
由于新版的 nodejs 已經(jīng)集成了 npm,所以之前 npm 也一并安裝好了。同樣可以通過輸入 “npm -v” 來測試是否成功安裝。命令如下,出現(xiàn)版本提示表示安裝成功。
—— From: 菜鳥教程
npm 的包安裝分為本地安裝(local)、全局安裝(global)兩種,從敲的命令行來看,差別只是有沒有 -g 而已,比如:
npm install express # 本地安裝 npm install express -g # 全局安裝本地安裝:
將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執(zhí)行 npm 命令的目錄下生成 node_modules 目錄。可以通過 require() 來引入本地安裝的包。
全局安裝:
將安裝包放在 /usr/local 下或者你 node 的安裝目錄。可以直接在命令行里使用。
如果你希望具備兩者功能,則需要在兩個地方安裝它或使用 npm link。
1.1 搭建步驟
(1) 第一步:Github Pages
Github Pages 免費的靜態(tài)站點,其特點:免費托管、自帶主題、支持自制頁面等。
創(chuàng)建 Github Pages 比較簡單,只要你有一個 GitHub 賬號在創(chuàng)建一個倉庫就行了,但是這個倉庫是有規(guī)則的,其格式必須為:yourusername.github.io。然后根據(jù)提示一直下一步即可,非常簡單。比如我的賬戶名為strivebo,則格式為strivebo.github.io。(這里在 GitHub 上創(chuàng)建倉庫我就不多講了吧?)
(2) 第二步:Hexo相關(guān)操作
我把用到的命令先記錄在此:
hexo new "postName" #新建文章,縮寫為:hexo n hexo new page "pageName" #新建頁面 hexo generate #生成靜態(tài)頁面至public目錄,,縮寫為:hexo g hexo server #開啟預覽訪問端口(默認端口4000,'ctrl + c'關(guān)閉server),縮寫為:hexo s hexo s -p 8080 #本地預覽的時候修改端口為8080 hexo s -debug #本地預覽調(diào)試 hexo deploy #部署到GitHub,縮寫為:hexo d hexo clean # 清除緩存文件 db.json 和已生成的靜態(tài)文件 public hexo help # 查看幫助 hexo version #查看Hexo的版本 ---------------以下為組合命令---------------------------------- hexo s -g #生成并本地預覽 hexo d -g #生成并上傳具體的操作步驟:
安裝 Git 和 node.js(筆者實踐使用的 Git-2.15.0-64-bit.exe 和 node-v9.4.0-x64.msi 版本);
新建目錄,如名稱為 blog 的文件夾,然后在該目錄下的Git Bash (安裝了 Git 就有這個,鼠標右鍵會出現(xiàn))下輸入npm install -g hexo
基于上面對 npm 的了解,此命令為全局安裝 hexo;也有看到教程寫的是:npm install -g hexo-cli這個(并且官方文檔也是用的這個命令說是安裝 hexo);或者好像也可以使用npm install hexo --save進行安裝(親測:不可以先使用這個命令!),安裝完畢生成了node_node_modules文件夾(莫非這個命令才是此版本 node.js 對應的安裝方式?),然后再執(zhí)行hexo或者是后面的需要用到的hexo g命令,都會生成db.json文件,我現(xiàn)在還不知道其作用,當然hexo g還會生成 public 文件內(nèi)容(文章被編譯形成的文件夾)。
去網(wǎng)上找了下解釋:hexo和hexo-cli的關(guān)系?
① hexo 本身是一個靜態(tài)博客生成工具,具備編譯 Markdown、拼接主題模板、生成 HTML、上傳 Git 或 FTP 等基本功能。將這些功能封裝為命令,提供給用戶通過 hexo server / hexo deploy 等命令調(diào)用的模塊,就是 hexo-cli 了。CLI = Command Line Interface 命令行界面。
② 后者是前者的命令行模式,即 hexo-cli為hexo的命令行模式。
再在該目錄下,Git Bash 下敲hexo init,會自動下載如下文件及文件夾到這個目錄,但不包括 public 文件夾。
node_node_modules 文件夾(納悶:按道理不是在npm install -g hexo生成嗎?) scaffolds 文件夾 source 文件夾 themes 文件夾 .gitignore _config.yml package.json package-lock.json備注:public 文件夾為 hexo generate或hexo g(其實是這個「編譯過程」)生成靜態(tài)頁面才會生成的文件夾。
然后 hexo generate 或 hexo g生成 public 文件夾(該文件夾下為 .md 文件編譯后生成的靜態(tài)文件,包括html/css/js/圖片等等)和db.json文件
public文件夾下為.md文件編譯后形成的文件,也正是被 hexo deploy部署到 GitHub 上的文件。
可以hexo s開啟本地預覽端口,輸入 http://localhost:4000/ 進行預覽,可以看到默認主題下的博客,如果遇到 4000 端口被占用的問題,可以使用比如 hexo s -p 8080 指定 8080 端口預覽。好了! 本地搭建的活干完了!
現(xiàn)在可以試試寫文章了實踐了,執(zhí)行hexo new "第一篇博客.md",這樣就在 source 目錄下生成該博客文章了,然后可以進行寫作了,再去執(zhí)行hexo g編譯和hexo s預覽了,另外如果文章寫錯了需修改,可以重新生成;網(wǎng)站顯示異常時,可以先使用hexo clean清除緩存文件 db.json 和已生成的靜態(tài)文件目錄 public,再hexo g重新生成。
本地預覽完畢,則hexo deploy或 hexo d 發(fā)布至 GitHub,訪問地址格式如:https://yourname.github.io
注:若在發(fā)布至 GitHub 提示 Deployer not found: github 或者 Deployer not found: git , 原因是需要安裝一個插件,命令是:npm install hexo-deployer-git --save(網(wǎng)上搜了下,這步的含義說是在安裝 git 插件)
發(fā)布之后,該文件下該目錄下生成了 .deploy_git 文件夾(目測了下:該文件有一個.git文件夾;其他文件和public文件夾下內(nèi)容一樣)。那該文件夾干嘛的?
網(wǎng)上看到的解釋 1:
.deploy_git: 這個應該是 git 部署用的文件。比如你寫好的博客想部署到 GitHub Pages 上去的話,可以用 git 部署插件,那個插件會創(chuàng)建這個目錄
網(wǎng)上看到的解釋 2:
注意,使用這種方式,只會將 hexo 編譯后生成的 html、css、js 等上傳到 github.io 代碼庫中,并不會將本地的其它源碼提交;
同時,在本地生成一個 .deploy_git 目錄,表示是 hexo 專用的 git 庫;
我在部署,即上傳至 GitHub 完畢之后,查看到 master 分支上的文件和.deploy_git文件夾下的文件相同,所以我的猜測正如網(wǎng)上看到的解釋的意思:**hexo d 只會發(fā)布編譯后生成的文件,.deploy_git目錄表示 hexo 專用的 git 庫,在 hexo d 進行發(fā)布部署的時候,會拷貝 public 文件夾所有內(nèi)容至 .deploy_git 目錄下,再把該文件內(nèi)容推送到 GitHub 倉庫。**在后面的實踐中,證實了這點!
這里有個思考的地方?hexo d 發(fā)布的時候為什么就會發(fā)布到倉庫下 master 的分支(我倉庫下明明還有 backup 分支)呢?哈哈,我猜測是在設置_config.yml該文件的時候:
deploy: type: git repository: git@github.com:strivebo/strivebo.github.io.git branch: master我這里 branch 設置的為 master,所以默認部署到 master 分支。
其中這里的配置我解釋下:如repository配置為git@github.com:strivebo/strivebo.github.io.git 寫上這樣的表示采用的 ssh 方式,若為https://github.com/strivebo/strivebo.github.io.git表示采用 https 方式提交。注意的地方,type 值這里為 git,我看網(wǎng)上很多人說之前很多人設置的值為 github,被坑了。
(3) 更換主題
對于默認主題我們不喜歡怎么辦?不著急,是可以換主題的,可以到官網(wǎng)推薦的主題選擇:https://hexo.io/themes/,或者到 GitHub 上搜索關(guān)鍵字「hexo-theme」也能搜到很多;然后就是直接下載下來就行,解壓出來里面文件夾復制粘貼到博客根目錄的 themes 文件夾下,最后配置好主題配置文件_config.yml和站點配置文件_config.yml(即博客根目錄下的_config.yml),其中站點配置文件只要把theme值改為復制粘貼過來的主題的那個文件夾名稱就行。
然后編譯、發(fā)布、預覽就可以看到效果了!
1.2 域名綁定
不綁定域名肯定也是可以的,就用默認的 xxx.github.io 來訪問,如果想更個性一點,想擁有一個屬于自己的域名,那也是 OK 的。
分兩大步驟:先到服務商比如阿里云旗下萬網(wǎng)進行的操作;然后在倉庫項目的操作。
關(guān)于域名的注冊,以前域名的注冊總是推薦去國外的 godaddy , 但是現(xiàn)在國內(nèi)的 阿里云旗下萬網(wǎng) 也很多人在使用,價格也不貴,一般首次注冊使用還是很便宜的,但據(jù)大家說在萬網(wǎng)注冊 .cn 等后綴域名是需要在國內(nèi)備案的,如果在國外服務商注冊,如 godaddy 注冊,就不用備案。
關(guān)于備案問題,我有在網(wǎng)上了解了下,以下摘自網(wǎng)上:
域名的備案根據(jù)你的服務器主機而定,主機在哪就在哪里備案;
只有中國國內(nèi)的空間才要求備案,接入商會嚴格把關(guān)的,不備案的網(wǎng)站是絕對不能訪問的;
網(wǎng)站備案主要是看你的網(wǎng)絡主機是哪家公司的,就在哪家公司做備案;
備案與域名注冊商無關(guān),與服務器有關(guān),也就是說你的域名可以接入其他任何一家 IDC,但如果你的服務器在萬網(wǎng),那么萬網(wǎng)作為服務器接入商,你的備案信息就必須先經(jīng)過萬網(wǎng)的審核后才能遞交工信部終審;
注冊 cn 域名做網(wǎng)站并不是一定需要備案的,主要還是看用的是哪時主機。如果用的是國內(nèi)主機,那么就必須備案,如果用的是國外的空間,那么就不需要備案,直接使用即可。不過需要注意的是,根據(jù) CN 域名管理機構(gòu) CNNIC 的規(guī)定,cn 域名在注冊時需要注冊人提交身份證掃描件進行審核,在審核通過后才能正常使用,否則就會注冊失敗;
其實是一句話,域名如果綁定指向到國內(nèi)網(wǎng)站空間就要備案。也就是說如果你這個域名只是純粹注冊下來,用作投資或者暫時不用,是無需備案的。域名指向到國外網(wǎng)站空間,也是無需備案的。但是 CN 域名是特例,CN 域名指向到國外網(wǎng)站空間也要備案,不備案就是暫停解析狀態(tài),無法指向到任何 IP。由于域名備案基本取決于網(wǎng)站空間的情況,所以備案也是空間服務商提供備案,不是域名注冊商。
…
看了網(wǎng)上一些解釋,我大概明白了,是否備案與域名無關(guān),得看購買的主機/服務器在哪,在國內(nèi)的才需要備案。我想我利用的是 GitHub Page 服務,相當于服務器在國外,所以不用備案吧。下面以在萬網(wǎng)注冊為例。
(1) 萬網(wǎng)的操作——域名解析設置
登入萬網(wǎng)購買域名。然后:管理控制臺 → 域名與網(wǎng)站(萬網(wǎng)) → 域名;在購買的那個域名處,點擊「解析」,進行如下設置。
綁定域名分 2 種情況:帶 www 和不帶 www 的。
域名配置最常見有 2 種方式,CNAME 和 A 記錄,CNAME 填寫域名,A 記錄填寫 IP,由于不帶 www 方式只能采用 A 記錄,所以必須先 ping 一下你的 用戶名.github.io 的 IP,然后到你的域名 DNS 設置頁,將 A 記錄指向你 ping 出來的 IP,將 CNAME 指向你的 用戶名.github.io,這樣可以保證無論是否添加 www 都可以訪問,如下:
| A | @ | 默認 | 103.245.222.133 |
| CNAME | www | 默認 | strivebo.github.io |
(2) 對倉庫的操作——添加CNAME文件
在 GitHub 博客倉庫 master 分支根目錄創(chuàng)建一個 CNAME 文件(無后綴),里面填寫你的域名,加不加 www 看自己喜好,因為經(jīng)測試:
- 如果你填寫的是沒有 www 的,比如 mygit.me,那么無論是訪問 http://www.mygit.me 還是 http://mygit.me,都會自動跳轉(zhuǎn)到 http://mygit.me
- 如果你填寫的是帶 www 的,比如 www.mygit.me ,那么無論是訪問 http://www.mygit.me 還是 http://mygit.me,都會自動跳轉(zhuǎn)到 http://www.mygit.me
- 如果你填寫的是其它子域名,比如 abc.mygit.me,那么訪問 http://abc.mygit.me 沒問題,但是訪問 http://mygit.me ,不會自動跳轉(zhuǎn)到 http://abc.mygit.me
關(guān)于添加 CNAME 文件簡單提下,如果你不想如上直接在遠程倉庫創(chuàng)建 CNAME 文件,可按如下操作在本地添加完再部署:
在博客目錄的 source 文件夾下添加 CNAME 文件,hexo g 編譯會自動生成這個文件于 public 中,hexo d 部署的時候會把 public 文件夾下文件復制于 .deploy_git 目錄下進行發(fā)布。
參考資料:使用hexo+github搭建免費個人博客詳細教程
域名綁定個人實操
(1) 域名注冊和解析
一開始我使用的都是阿里云的,包括購買域名、域名解析,后來域名快要到期了,準備續(xù)費三年,發(fā)現(xiàn)有點小貴,于是想著買一個新的域名會不會更便宜呢?然后有在騰訊云下搜了下相同名稱但后綴為 .com 的域名發(fā)現(xiàn)比在阿里云續(xù)費三年價格還便宜一點點,遂直接在騰訊云買了個新的域名(購買傳送門),解析用的是騰訊云的免費解析套餐(云解析套餐 - 騰訊云 可以了解下)。以下是我的解析設置:
| www | CNAME | 默認 | strivebo.github.io. |
| @ | CNAME | 默認 | strivebo.github.io. |
從上圖可以了解到,添加 www、@ 記錄,CNAME 的類型,這樣話,不管地址欄輸入的是帶 www 的www.strivebo.com ,還是不帶 www 的 strivebo.com 都是可以訪問到目標網(wǎng)頁。
(2) 創(chuàng)建CNAME文件
在本地博客根目錄下的 source 文件夾中,新建一個名為 CNAME 的文件,注意這個文件不帶 任何后綴名。打開 CNAME 文件,在里面填寫你購買的域名,加不加www看前文的說明,就不贅述了。
(3) SSL證書
什么是 SSL 證書?
首先說明 SSL(安全套接層,Secure Sockets Layer)是一種安全協(xié)議,目的是為互聯(lián)網(wǎng)通信,提供安全及數(shù)據(jù)完整性保障。SSL 證書遵循 SSL 協(xié)議,可安裝在服務器上,實現(xiàn)數(shù)據(jù)傳輸加密。
CA(數(shù)字證書認證,Certificate Authority)機構(gòu),是承擔公鑰合法性檢驗的第三方權(quán)威機構(gòu),負責指定政策、步驟來驗證用戶的身份,并對 SSL 證書進行簽名,確保證書持有者的身份和公鑰的所有權(quán)。CA 機構(gòu)為每個使用公開密鑰的用戶發(fā)放一個 SSL 證書,SSL 證書的作用是證明證書中列出的個人/企業(yè)合法擁有證書中列出的公開密鑰。CA 機構(gòu)的數(shù)字簽名使得攻擊者不能偽造和篡改證書。
SSL 證書實際上就是 CA 機構(gòu)對用戶公鑰的認證,內(nèi)容包括電子簽證機關(guān)的信息、公鑰用戶信息、公鑰、權(quán)威機構(gòu)的簽字和有效期等。
簡單看,安裝了 SSL 證書,可以讓你的網(wǎng)站支持 HTTPS 地址形式,地址欄不再提示連接不安全。了解下:SSL證書_SSL數(shù)字證書_HTTPS加密 - 騰訊云。
騰訊云提供免費 SSL 證書申請,如何申請:SSL 證書 域名型(DV)免費SSL證書 - 騰訊云。申請到后的證書可下載到本地,或者部署到云服務。
SSL 證書如何安裝和部署指引:SSL 證書 證書安裝指引 - 騰訊云、hexo 博客開啟 https (SSL 證書)。
其實對于 GitHub Page 現(xiàn)在可以對自定義域名支持 HTTPS:
GitHub 官方在 2018 年5 月 1 號宣布,GitHub Pages 的自定義域名獲得對 HTTPS 的支持。
設置操作:打開倉庫的Settings,找到 GitHub Pages 項,找到 Enforce HTTPS,打上勾即可。
1.3 問題匯總
問題 1: 執(zhí)行 hexo deploy 命令,README 文件就消失,有什么解決方法嗎?
在 Hexo 目錄下的 source 目錄下新建一個 README.md文件,修改 Hexo 目錄下的配置文件_config.yml,將skip_render參數(shù)的值設置為上。即 skip_render: README.md保存退出即可。使用 hexo d 命令就不會渲染 README.md 這個文件了。
參考資料:怎么用hexo上傳一個README.md到github?
2. 博客備份
2.1 備份詳解
博客搭建完畢,就可以通過 https://strivebo.github.io 類似這樣的格式訪問了。如果要綁定了域名就可以使用域名訪問了。
這里有個問題是:部署上去的,即發(fā)布到 GitHub 的都是編譯后的文件,如 html、css,js等文件,但是自己寫的 .md 文章實際是沒有上傳至 GitHub 的,如果需要備份這些源文件,該怎么備份呢?或者換了別的電腦該怎么更新博客呢?
(1) 如果備份分支 backup 為默認分支
如果備份分支 backup 為默認分支:在完成上面部署至 GitHub 之后,可以把該博客目錄于 GitHub 博客這個倉庫進行關(guān)聯(lián)(即綁定),這樣就在該根目錄生成記錄版本控制信息的.git目錄,這里這塊知識就是 git 有關(guān)知識了,自行網(wǎng)上了解下 .git 目錄作用。同時也能注意到博客根目錄下有個.gitigore文件,就是可以設置文件要還是不要 push 到 GitHub 倉庫去。
因為首次 GitHub 上沒有非默認分支,使用如下命令:
git push origin backup:backup這條命令的作用是:把本地 backup 分支推送到名字為 origin 的遠程服務器的 backup 分支上,但因為遠程服務器沒有 backup 分支,會自動新建該同名分支,然后在 GitHub 網(wǎng)站的 setting 頁面設置 backup 為默認分支。 其中,這步操作,就把需要備份文件比如 source 文件夾下的的博客「源文件」已經(jīng)上傳至分支 backup。
然后下次就算換電腦了,可以直接 clone 該博客倉庫,得到 backup 分支的數(shù)據(jù)(即得到了 GitHub 默認分支 backup 數(shù)據(jù)),然后再如最開始安裝 nodejs、Git 以及安裝 hexo,最后再執(zhí)行相關(guān)命令得到編譯后的文件(即 public 目錄),最后hexo d部署至 GitHub 博客倉庫的 master 上。
(2) 如果部署分支 master 為默認分支
如果部署分支 master 為默認分支 :換了電腦之后,clone 倉庫后默認顯示 master 分支數(shù)據(jù),然后執(zhí)行格式 git checkout -b <本地分支名稱> origin/<遠程分支名稱>,如 git checkout -b backup orgin/backup 該語句作用是在本地創(chuàng)建新的分支,分支的名稱是 backup,第二個 backup 也是我想要 clone 的遠程分支的名字,這樣 GitHub 上非默認分支的數(shù)據(jù)也 clone下來了,而且還進行了綁定;
再git checkout backup 這樣就切換到本地 backup 分支了,然后進行寫文章,編譯,部署等操作,因為部署只會部署.deloper_git文件夾下文件內(nèi)容,所以這樣的方式也是可行的。
但是這里有個問題是,備份分支 backup 并沒有備份「node_modules」文件夾,所以需要重新安裝hexo,即執(zhí)行一開始講到的npm install -g hexo,如果不行,則用這個npm install -g hexo-cli試試來安裝 hexo,然后可以用 hexo 命令進行一系列如編譯、部署等操作了。
這里又有個問題出現(xiàn)了,hexo g編譯文章后,使得package.json和package-lock.json文件改動了,如果擔心這里的變動引起不必要的問題,可以干脆在.gitignore文件中設置忽略這兩個文件不被提交。
實際操作中,發(fā)現(xiàn)每次 add 命令把修改提交到暫緩區(qū)后,還是會提示package.json文件的已修改,同時也切換不了到本地 master 分支,得了,commit 一次,然后切換到本地 master 分支查看,發(fā)現(xiàn)比遠程 master 分支多了node_modules文件夾和db.json文件。
然后hexo d就可以發(fā)布部署public文件夾內(nèi)容至 GitHub 上了,OK。
最后,進行 Git 有關(guān)操作 git push origin backup:backup 進行備份源文件(不包括.gitgnore設置的那些被忽略提交的文件和目錄,哈哈,比如node_modules這個目錄就不會被提交到備份分支 backup 啊)!
相關(guān)學習:
-
npm install 生成的package-lock.json是什么文件?有什么用?
大致意思是,如果改了 package.json,且 package.json 和 lock 文件不同,那么執(zhí)行npm i時 npm 會根據(jù) package 中的版本號以及語義含義去下載最新的包,并更新至 lock。
如果兩者是同一狀態(tài),那么執(zhí)行npm i都會根據(jù) lock 下載,不會理會 package 實際包的版本是否有新。
-
.npmignore文件的干嘛的
2.2 備份實戰(zhàn)
本人 GitHub 博客那個倉庫設置的是 master 為默認分支;另外我本機安裝版本為 Git v2.15.0,nodejs v9.4.0。
git clone git@github.com:strivebo/strivebo.github.io.git克隆默認分支 master 分支數(shù)據(jù);
使用git branch -a可以查看到本地只有 master 分支以及遠程有 master 和 backup 分支,于是git checkout -b backup origin/backup 可以本地自動新建了 backup 分支并且與遠程 backup 分支綁定了,同時切換到了本地 backup 分支,并且可以看到本地分支內(nèi)容和遠程一樣,內(nèi)容如下:
scaffolds 文件夾 source 文件夾 themes 文件夾 .gitignore _config.yml package.json package-lock.json使用npm install -g hexo或者npm install -g hexo-cli安裝 hexo,完畢之后未在博客根目錄生成node_modules文件夾,并且繼續(xù)敲hexo init提示:
ERROR Local hexo not found in G:\strivebo.github.io ERROR Try running: 'npm install hexo --save'于是敲npm install hexo --save,可以看到博客根目錄生成了node_modules文件夾及內(nèi)容,然后可以使用hexo init來生成一些文件了,但是因為我遠程的備份分支 backup 本來就是備份了這個步驟生成的文件(除了 node_modules 文件夾內(nèi)容未備份),比如 themes 文件等都是遠程備份了的;
然后hexo g編譯 source 中的博客文章,生成 public 文件夾,編譯后的 html/css/js 等文件也存于此,hexo s本地預覽;
然后本地在 source 新增博客文章,以及文章修改,hexo g、hexo g即可,最后 hexo d發(fā)布部署至 GitHub(其實 hexo d會自動生成一個.deploy_git文件夾,并且實質(zhì)是把 public 文件夾內(nèi)容復制于該文件夾進行發(fā)布的,該文件夾下有個隱藏文件夾.git維護著 發(fā)布 這個過程的版本控制信息。)
update:2018-01-29 v1.1
update:2019-02-13 標題及部分內(nèi)容和文字表達處修改
update:2019-02-14 增加了「域名綁定個人實操」小節(jié)內(nèi)容;標題由「基于Hexo+GitHub Page搭建博客及備份筆記」改為「「(Ⅰ)基于Hexo+GitHub Page搭建博客,綁定域名及備份」」
總結(jié)
以上是生活随笔為你收集整理的(Ⅰ)基于Hexo+GitHub Page搭建博客,绑定域名及备份的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (一)Git学习记录(不断更新)
- 下一篇: 博客目录(随时删除)