日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个本地分支能关联两个远程仓库吗_使用git分支保存hexo博客源码到github

發布時間:2023/12/10 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个本地分支能关联两个远程仓库吗_使用git分支保存hexo博客源码到github 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

hexo是當前最火的靜態博客框架,支持Markdown格式文章編輯并自動生成對應的靜態網頁,簡單高效令人愛不釋手。

使用hexo寫博客的流程通常是,

  • 通過hexo new post_name命令,會自動在source/_post目錄下生成一個待寫的post_name.md文件
  • 編寫完該md文件后,用hexo generate編譯生成對應的HTML文件
  • 發布之前,可以用hexo s本地預覽,然后通過hexo deploy發布到遠程倉庫的master分支,然后你的個人站點就能看到剛才新加的文章了
  • 困擾

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

    解決辦法

    新建git分支

    因Github Page要求使用master分支作為發布網站的源代碼,我們只能用master分支來保存hexo生成的靜態網頁,對于博客源碼,可以新建一個source分支來存儲。在github上打開Pages對應的倉庫,也就是以"username.github.io"命名的倉庫,然后建立一個source分支,如下圖:

    因為我已經創建過source分支,故下方會顯示目前該倉庫上有master和source兩個分支。其中source分支顯示打鉤,表示當前倉庫的默認分支已經是source而不是master了,下面會講。

    更改倉庫的默認分支

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

    在倉庫的主頁面,通過Settings -> Branchs,可以看到Default branch的Tab,顯示的默認分支是master,可以勾選source,然后update即可將默認分支設置為source,如下圖:

    將本地hexo目錄與遠程倉庫關聯

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

    git remote add origin https://github.com/sherlockyb/sherlockyb.github.io.git

    推送博客源碼

    將本地的md源文件、站點配置文件等推送到source分支。

    因為我們只需要保留博客源碼,其他無關的文件并不希望推送,需要確保配好了.gitignore文件,通常如下:

    .DS_StoreThumbs.dbdb.json*.lognode_modules/public/.deploy*/

    然后依次執行如下命令:

    git add .git commit -m 'hexo source post'git push origin source

    刪除public等文件(可選)

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

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

    執行完之后,你的倉庫大概就是長這個樣子:

    后續即便你再發布博客時,deploy生成public文件,在提交博客源碼時,也不會將其帶上去,因為有.gitignore將其忽略了。

    新環境

    假設我們換電腦了,要在新環境繼續在原有倉庫基礎上擼文章,此時通過git clone將博客源碼拉到本地,然后安裝、初始化hexo就能搞定:

    git clone https://github.com/sherlockyb/sherlockyb.github.io.git sherlockybcd sherlockybnpm install hexonpm install hexo-deployer-git -save?// hexo環境配置好后,繼續像之前一樣hexo new post_name...

    注意事項

    確保hexo deploy推送的是master分支,hexo目錄下的_config.yml文件通常會配置deploy推送的目標地址,這個一般在最初使用hexo時,就會配置為master,不用改動:

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

    總結

    以上是生活随笔為你收集整理的一个本地分支能关联两个远程仓库吗_使用git分支保存hexo博客源码到github的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。