溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用git分支保存hexo博客源碼到github

發(fā)布時(shí)間:2021-07-05 18:25:31 來源:億速云 閱讀:198 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要講解了“如何使用git分支保存hexo博客源碼到github”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“如何使用git分支保存hexo博客源碼到github”吧!

hexo是當(dāng)前最火的靜態(tài)博客框架,支持Markdown格式文章編輯并自動(dòng)生成對(duì)應(yīng)的靜態(tài)網(wǎng)頁(yè),簡(jiǎn)單高效令人愛不釋手。 使用hexo寫博客的流程通常是,

  1. 通過hexo new post_name命令,會(huì)自動(dòng)在source/_post目錄下生成一個(gè)待寫的post_name.md文件

  2. 編寫完該md文件后,用hexo generate編譯生成對(duì)應(yīng)的HTML文件

  3. 發(fā)布之前,可以用hexo s本地預(yù)覽,然后通過hexo deploy發(fā)布到遠(yuǎn)程倉(cāng)庫(kù)的master分支,然后你的個(gè)人站點(diǎn)就能看到剛才新加的文章了

困擾

然而,使用過hexo搭建個(gè)人博客的朋友們想必都會(huì)遇到博客源碼保存的問題。即遠(yuǎn)程倉(cāng)庫(kù)只會(huì)保存hexo發(fā)布后的靜態(tài)HTML文件,你的博客md源文件、主題配置等還在本地,一旦電腦磁盤壞了或者換了電腦,就無法在之前倉(cāng)庫(kù)的基礎(chǔ)上繼續(xù)寫博客。針對(duì)此問題,有不少博主會(huì)在github上單獨(dú)另起一個(gè)repository來專門保存博客源文件,每次發(fā)布完新文章,需要手動(dòng)地將source/post下的md文件上傳到源文件對(duì)應(yīng)的repository,確實(shí)也能解決問題,但總歸是麻煩。后來偶然看到聰明的網(wǎng)友借助git分支來巧妙地實(shí)現(xiàn)用同一個(gè)倉(cāng)庫(kù)保存靜態(tài)網(wǎng)頁(yè)和博客源碼,自己試了下確實(shí)很贊,故總結(jié)之。

解決辦法

新建git分支

因Github Page要求使用master分支作為發(fā)布網(wǎng)站的源代碼,我們只能用master分支來保存hexo生成的靜態(tài)網(wǎng)頁(yè),對(duì)于博客源碼,可以新建一個(gè)source分支來存儲(chǔ)。在github上打開Pages對(duì)應(yīng)的倉(cāng)庫(kù),也就是以"username.github.io"命名的倉(cāng)庫(kù),然后建立一個(gè)source分支,如下圖:

如何使用git分支保存hexo博客源碼到github

因?yàn)槲乙呀?jīng)創(chuàng)建過source分支,故下方會(huì)顯示目前該倉(cāng)庫(kù)上有master和source兩個(gè)分支。其中source分支顯示打鉤,表示當(dāng)前倉(cāng)庫(kù)的默認(rèn)分支已經(jīng)是source而不是master了,下面會(huì)講。

更改倉(cāng)庫(kù)的默認(rèn)分支

github上的倉(cāng)庫(kù)初始都會(huì)有個(gè)master分支,也就是默認(rèn)分支。對(duì)于一個(gè)倉(cāng)庫(kù)project_name,當(dāng)我們通過git clone https://github.com/sherlockyb/project_name.git下載代碼時(shí),實(shí)際拉取的是默認(rèn)分支master對(duì)應(yīng)的代碼。而我們用hexo寫博客時(shí),通常是與md源文件打交道,對(duì)于deploy生成的master分支代碼并不需要我們關(guān)注,因此可將倉(cāng)庫(kù)的默認(rèn)分支改為保存源碼的source分支,這樣通過git clone拉取的就是source分支代碼了。

在倉(cāng)庫(kù)的主頁(yè)面,通過Settings -> Branchs,可以看到Default branch的Tab,顯示的默認(rèn)分支是master,可以勾選source,然后update即可將默認(rèn)分支設(shè)置為source,如下圖:

如何使用git分支保存hexo博客源碼到github

將本地hexo目錄與遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)

進(jìn)入到本地hexo工程目錄,也就是我們通常執(zhí)行hexo new post等命令的目錄,執(zhí)行如下操作:

git remote add origin https://github.com/sherlockyb/sherlockyb.github.io.git
推送博客源碼

將本地的md源文件、站點(diǎn)配置文件等推送到source分支。 因?yàn)槲覀冎恍枰A舨┛驮创a,其他無關(guān)的文件并不希望推送,需要確保配好了.gitignore文件,通常如下:

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

然后依次執(zhí)行如下命令:

git add .
git commit -m 'hexo source post'
git push origin source
刪除public等文件(可選)

因?yàn)閟ource分支是從master分支新建的,初始代碼實(shí)際就是master的拷貝,因而master中已有的public等deploy生成的文件也會(huì)一起帶過來,這些都不算是博客源文件,如果你也覺著source分支還存著這些有些別扭,就可以先在本地把它刪掉,然后執(zhí)行:

git add .
git commit -m 'DEL: public things which only for deploy'
git push origin source

執(zhí)行完之后,你的倉(cāng)庫(kù)大概就是長(zhǎng)這個(gè)樣子: 如何使用git分支保存hexo博客源碼到github

后續(xù)即便你再發(fā)布博客時(shí),deploy生成public文件,在提交博客源碼時(shí),也不會(huì)將其帶上去,因?yàn)橛?code>.gitignore將其忽略了。

新環(huán)境

假設(shè)我們換電腦了,要在新環(huán)境繼續(xù)在原有倉(cāng)庫(kù)基礎(chǔ)上擼文章,此時(shí)通過git clone將博客源碼拉到本地,然后安裝、初始化hexo就能搞定:

git clone https://github.com/sherlockyb/sherlockyb.github.io.git sherlockyb
cd sherlockyb
npm install hexo
npm install hexo-deployer-git -save

// hexo環(huán)境配置好后,繼續(xù)像之前一樣
hexo new post_name
...

注意事項(xiàng)

確保hexo deploy推送的是master分支,hexo目錄下的_config.yml文件通常會(huì)配置deploy推送的目標(biāo)地址,這個(gè)一般在最初使用hexo時(shí),就會(huì)配置為master,不用改動(dòng):

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: https://github.com/sherlockyb/sherlockyb.github.io.git
  branch: master

同步更新到原文

感謝各位的閱讀,以上就是“如何使用git分支保存hexo博客源碼到github”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何使用git分支保存hexo博客源碼到github這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI