使用hexo,如果換了電腦怎麼更新博客?


其實,Hexo生成的文件裡面是有一個.gitignore的,所以它的本意應該也是想我們把這些文件放到GitHub上存放的。但是考慮到如果每個GitHub Pages都需要額外的一個倉庫存放這些文件,就顯得特別冗餘了。這個時候就可以用分支的思路!一個分支用來存放Hexo生成的網站原始的文件,另一個分支用來存放生成的靜態網頁。

最近我也用GitHub Pages搭建了一個獨立博客,想到了這個方法,使用之後真的特別簡潔。為了更直觀地說明,奉上使用這種方法不同時候的流程:

----------------------------------------------------------- 華麗的分割線1 ----------------------------------------------------------

一、關於搭建的流程

1. 創建倉庫,http://CrazyMilk.github.io;

2. 創建兩個分支:master 與 hexo;

3. 設置hexo為默認分支(因為我們只需要手動管理這個分支上的Hexo網站文件);

4. 使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷貝倉庫;

5. 在本地http://CrazyMilk.github.io文件夾下通過Git bash依次執行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此時當前分支應顯示為hexo);

6. 修改_config.yml中的deploy參數,分支應為master;

7. 依次執行git add .、git commit -m "..."、git push origin hexo提交網站相關的文件;

8. 執行hexo g -d生成網站並部署到GitHub上。

這樣一來,在GitHub上的http://CrazyMilk.github.io倉庫就有兩個分支,一個hexo分支用來存放網站的原始文件,一個master分支用來存放生成的靜態網頁。完美( ?? ω ?? )y!

二、關於日常的改動流程

在本地對博客進行修改(添加新博文、修改樣式等等)後,通過下面的流程進行管理。

1. 依次執行git add .、git commit -m "..."、git push origin hexo指令將改動推送到GitHub(此時當前分支應為hexo);

2. 然後才執行hexo g -d發布網站到master分支上。

雖然兩個過程順序調轉一般不會有問題,不過邏輯上這樣的順序是絕對沒問題的(例如突然死機要重裝了,悲催....的情況,調轉順序就有問題了)。

三、本地資料丟失後的流程

當重裝電腦之後,或者想在其他電腦上修改博客,可以使用下列步驟:

1. 使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷貝倉庫(默認分支為hexo);

2. 在本地新拷貝的http://CrazyMilk.github.io文件夾下通過Git bash依次執行下列指令:npm install hexo、npm install、npm install hexo-deployer-git(記得,不需要hexo init這條指令)。

---------------------------------------------------------- 華麗的分割線2 ----------------------------------------------------------

以上就是我採用的方法,雖說文字有點多,但是我個人覺得真的挺高效和簡潔的。更詳細的可以參考我剛寫的博文:GitHub Pages + Hexo搭建博客。

第一次回答問題,略緊張呢 ( ?? ω ?? )y


不知道題主是不是換了新電腦,需要在新電腦上進行部署,如果是,可以參考下面的方法:
1、從官網Git下載git,在新電腦上安裝,因為https速度慢,而且每次都要輸入口令,常用的是使用ssh。使用下面方法創建:
(1)打開git bash,在用戶主目錄下運行:ssh-keygen -t rsa -C "youremail@example.com" 把其中的郵件地址換成自己的郵件地址,然後一路回車
(2)最後完成後,會在用戶主目錄下生成.ssh目錄,裡面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH key密鑰對,id_rsa是私鑰,千萬不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
(3)登陸GitHub,打開「Settings」-&>「SSH and GPG keys」,然後點擊「new SSH key」,填上任意Title,在Key文本框里粘貼公鑰id_rsa.pub文件的內容(千萬不要粘貼成私鑰了!),最後點擊「Add SSH Key」,你就應該看到已經添加的Key。
注意:不要在git版本庫中運行ssh,然後又將它提交,這樣就把密碼泄露出去了。
2、下載Node.js,並安裝
3、打開git bash客戶端,輸入 npm install hexo-cli -g,開始安裝hexo
4、下面就將原來的文件拷貝到新電腦中,但是要注意哪些文件是必須的,哪些文件是可以刪除的。
(1)討論下哪些文件是必須拷貝的:首先是之前自己修改的文件,像站點配置_config.yml,theme文件夾裡面的主題,以及source裡面自己寫的博客文件,這些肯定要拷貝的。除此之外,還有三個文件需要有,就是scaffolds文件夾(文章的模板)、package.json(說明使用哪些包)和.gitignore(限定在提交的時候哪些文件可以忽略)。其實,這三個文件不是我們修改的,所以即使丟失了,也沒有關係,我們可以建立一個新的文件夾,然後在裡面執行hexo init,就會生成這三個文件,我們只需要將它們拷貝過來使用即可。總結:_config.yml,theme/,source/,scaffolds/,package.json,.gitignore,是需要拷貝的。
(2)再討論下哪些文件是不必拷貝的,或者說可以刪除的:首先是.git文件,無論是在站點根目錄下,還是主題目錄下的.git文件,都可以刪掉。然後是文件夾node_modules(在用npm install會重新生成),public(這個在用hexo g時會重新生成),.deploy_git文件夾(在使用hexo d時也會重新生成),db.json文件。其實上面這些文件也就是.gitignore文件裡面記載的可以忽略的內容。總結:.git/,node_modules/,public/,.deploy_git/,db.json文件需要刪除。
5、在git bash中切換目錄到新拷貝的文件夾里,使用 npm install 命令,進行模塊安裝。很明顯我們這裡沒用hexo init初始化,因為有的文件我們已經拷貝生成過來了,所以不必用hexo init去整體初始化,如果不慎在此時用了hexo init,則站點的配置文件_config.yml裡面內容會被清空使用默認值,所以這一步一定要慎重,不要用hexo init。
6、安裝其他的一些必要組件,如果在node_modules裡面有的,就不要重複安裝了:
(1)為了使用hexo d來部署到git上,需要安裝
npm install hexo-deployer-git --save
(2)為了建立RSS訂閱,需要安裝
npm install hexo-generator-feed --save
(3)為了建立站點地圖,需要安裝
npm install hexo-generator-sitemap --save
插件安裝後,有的需要對配置文件_config.yml進行配置,具體怎麼配置,可以參考上面插件在github主頁上的具體說明
7、使用hexo g,然後使用hexo d進行部署,如果都沒有出錯,就轉移成功了!

「廣告時間」:如果感覺有用,不妨點下「贊」,讓更多人看到。如果想轉載,請註明出處,^_^!


其實很簡單,用兩個GitHub Repo,一個Repo放你Hexo的源文件(這裡稱之為Source Repo),另一個Repo放Hexo生成出來的靜態網站(這裡稱之為Content Repo),然後使用AppVeyor做持續集成。每當需要更新博客,只需要更新Source Repo,AppVeyor會自動生成靜態網站並push到Content Repo,一氣呵成,版本控制完全由GitHub完成,也不需要手動deploy。具體步驟可以參見我的這篇文章:Hexo的版本控制與持續集成


哈~作為一個忘記吃藥的程序猿,我寫了一個可以備份到git的插件,可以備份整個博客,包括你的主題,可以備份到任何git的伺服器,github,gitcafe都沒有問題。

coneycode/hexo-git-backup · GitHub

歡迎試用交流。


過年回家遇到同樣的問題,寫了一篇文章《多機更新 Hexo 博客》http://lowrank.science/Hexo-Migration/ 或許對題主有幫助。

其實在另外一台電腦上更新 Hexo 博客,其實就是用 Hexo 搭建博客的簡化版,區別只是在於在 Github 上你博客的 repo 已經有了,不需要再重新創建,只要把新電腦的 SSH Key 添加一下就好。其他的 Hexo 安裝、KaTeX 等插件的安裝配置,該怎麼樣還是怎麼樣。

祝一切順利~


不知道樓主說的是不是換了一台新電腦需要重新部署hexo,如果是的話請往下看。

我從windows換到mac上來,用了上面的一些方法都不成功,其實並沒有這麼複雜。

首先按照網上搭建hexo的過程一步步重新在新電腦上操作,

之後只要用原電腦的scaffolds, source, themes 和 _config.yml替換新生成的文件就行了。

十分簡單~


我是用dropbox同步,node和git都是自製的綠色環境,一鍵執行,在任意一台機器都可以輕鬆玩,http://ibruce.info/2013/11/22/hexo-your-blog/


背景:

1. 宿舍,雙系統,Linux做主系統。

2. 實驗室,單系統,Linux。

我的方法:

1. 隨身攜帶優盤,寫了個腳本可自動備份到優盤,拔了拿回宿舍使用

2. 若忘記了帶回去了,在宿舍用ssh遠程獲取。

3. 宿舍雙系統所以博客會放到共享盤,只要在WIndows裝個客戶端即可。

4. Google Drive備份,以防萬一:


日期:2016-12-28 HEXO@3.2.2

補充一下 @CrazyMilk 的高票答案,這些天折騰下來的經驗是google問題一定要看寫作時間,一定要看版本號...

======這裡是分割線======

先上一張圖:

完成Hexo本地運行後,會在本地文件里生成一個public文件夾。public文件夾內是根據.md生成的html文件,也就博客的靜態文件。

通常情況下,我們執行:

$ hexo d

就是把public文件夾下的文件同步到github,然後就能通過https://username.github.io/訪問博客了。所以,我們的思路其實就是把靜態文件和Hexo環境,分別存在username.github.io的master和hexo分支上。

  1. master分支

    修改_config.yml,再提交便可。

    deploy:
    type: git
    repo: https://github.com/username/username.github.io.git
    branch: master

  2. hexo分支

    簡單的說就是把Hexo環境push到hexo分支。這裡引用一下高票答案的流程:

    1. 創建倉庫,http://CrazyMilk.github.io;

    2. 創建兩個分支:master 與 hexo;

    3. 設置hexo為默認分支(因為我們只需要手動管理這個分支上的Hexo網站文件);

    4. 使用git clone git@github.com:CrazyMilk/CrazyMilk.github.io.git拷貝倉庫;

    5. 在本地http://CrazyMilk.github.io文件夾下通過Git bash依次執行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此時當前分支應顯示為hexo);

    6. 修改_config.yml中的deploy參數,分支應為master;

    7. 依次執行git add .、git commit -m "..."、git push origin hexo提交網站相關的文件;

    8. 執行hexo g -d生成網站並部署到GitHub上。

    前四步的目的是,在github上建立一個新的repo,並且把目錄同步到本地(這時同步到本地的文件夾可能只有一個readme.md,或者是個空文件夾,但是有一個隱藏的.git文件夾...小白一直在想為什麼要clone一個空repo...原來這裡是要通過git建立存放本地環境的文件夾...哭)。

    執行第五步的時候,Hexo會生成一個新的.git,並且覆蓋了上文提到的.git...這會導致沒法push到hexo分支...正確的做法是,在hexo init前複製.git在完成hexo init後再黏貼回來覆蓋新生成的.git...剩下的就按照高票答案就能完成push hexo了...


我是把hexo的source文件放在了master branch上,也用git來管理,這樣不管怎麼換電腦都可以很方便的寫博客了。


最簡單的方法:

  1. 網盤同步源文件。
  2. 然後在新電腦上面登錄相同的github賬號。
  3. 用在新電腦上裝hexo,在新電腦的博客根目錄上hexo g/hexo d

找個私有倉庫比如http://coding.net,把整個博客項目都上傳。

1.刪除根目錄和主題目錄下的.git文件夾。

2.修改根目錄下的.gitignore文件為:

/.deploy_git

/public

其實第一行留不留都一樣,它是hexo默認的git配置文件夾,裡面也有一個.git,使/.deploy_git里的文件無法被提交。public是每次hexo g新生成的靜態博客文件,不需要同步。

每次寫完博客,hexo d之後再push一次就行


可以更新使用最新的 hexo-deployer-git 插件,因為沒有發布到 npm 的原因,必須得從 github 安裝

npm install git+git@github.com:hexojs/hexo-deployer-git.git --save

在項目根目錄下的 _config.yml 裡面就可以這樣配置

# _config.yaml
deploy:
- type: git
repo: git@github.com:&/&.github.io.git
branch: master
- type: git
repo: git@github.com:&/&.github.io.git
branch: src
extend_dirs: /
ignore_hidden: false
ignore_pattern:
public: .

這樣,在每次寫完博客的時候時候使用 hexo d 命令就能將所有其他文件發布到 src 分支

換電腦的時候就能通過 git 重新下載下來整個項目,然後本地切換到遠端的 src 分支

git checkout origin/src

就能重新獲得所有的源文件,就能重新 hexo d 發布

對於每一個從 git 下載下來的項目或者主題,最好把每個的 .git 文件夾刪掉,否則得通過 submodule 的方式來安裝。


把整個hexo的文件夾打包即可 換電腦的時候 重新npm install就可以了~


將源文件備份到github,每次都pull下來修改,然後同步,具體見本人博客

Hexo在兩台電腦間的操作流程


一台在宿舍,一台在實驗室,成功同步了!說說我的方法:

1. 把博客文件夾放在同步盤(如:我把my_blog文件夾放在了快盤同步盤裡了)

2. 你的機器的之前的ssh環境都要配置好。我也同步了一下,不知道是不是必要的。我把.ssh文件夾在兩台機器上都設置了一樣

3. 關鍵一步。當你從一台機器換到另一台機器上時,要把my_blog(我的博客文件夾)下的.deploy_git文件夾刪除,這樣,然後你hexo clean ,hexo d 就能部屬成功


今天我突然想到這個問題,想來參考參考,卻發現都不太適合我。首先,我猜題主的意思應該是換了電腦,原來的hexo怎麼遷移(我怎麼今天才想到,sad.....),不太懂為什麼有人要說怎麼搭建博客。。。。

------------------進入正題------------------------

首先,分析一下我也是大部分人的情況,換系統或者電腦應該不是經常的,此外,我認為也沒必要每次提交都備份全部的文件,其實主要需要備份那些我們修改了的文件(也就是_config.yml之類的配置文件以及source文件夾就行了),至於博客,重新搭建一個也就10分鐘吧(我記得hexo的宗旨應該就是讓你可以在30分鐘內快速搭建一個博客,也可以花上一整天折騰各種細節),而那些花去一整天的不就是那些我們千辛萬苦才弄好的配置文件嗎?所以我覺得只需要備份那些關鍵的配置文件就行了(還有一個原因是全部備份太慢了,多了好幾十兆呢,更何況每次都備份呢)

再者這些關鍵配置應該是很少更改的,所以我說不要每次提交都備份。

總結一下就是:

  1. 備份關鍵的文件和文件夾
  2. 只在修改時備份配置

這樣就算電腦突然故障也不怕了。

-----------------下方乾貨---------------------------

我展示一下我自己的方法吧(最後會給代碼,也是今晚臨時折騰的,代碼較亂,僅供參考),我每次發布文章只需要一行命令(沒錯就是一行,沒有git add . ,push, hexo g -d 那麼羅里吧嗦)。如圖(第一個是更新博客所在倉庫的提交備註,第二個更新配置所在倉庫的提交備註)

可以看一下GitHub是不是同步了呢:

那麼如果我只想發布博客,不想更新配置呢(如果沒修改過就完全沒必要更新啊!),很簡單,不要第二個參數就行了

以上就是我的策略,看過前面的答案,應該還算簡潔、geek吧!

最後,感興趣的可以看一下我的腳本(PS:shell我是不會的,我也只是按著自己的想法+Google搜索一步一步拼湊出來的,應該有很多可以改進的地方)GitHub地址:https://github.com/zhaoyu1995/my-settings/blob/master/hexo/deploy.sh

-_-


在hexo deploy部署同時,加一個腳本自動備份到另外一個自己的庫,這樣以後不需要關心備份的事兒了 (傳送門:自動備份Hexo博客源文件)

但其實日常,即使是程序員,敲代碼也是件費腦子的事情,尤其是換電腦情況下,還要配置環境,不難但是費事,所以我的做法是:

  • 換hexo為hugo,安裝少很多事
  • 保存MD源文件在dropbox,因為有一年的刪除記錄可以恢復
  • 生成網頁後,使用圖形化Git界面,只拖拽就可以完成提交,我自己用Pycharm自帶的

目前我使用了GIT開了兩個分支

一個分支是main傳html上去

另一個分支是blog傳原始的MD文件以及程序文件

這樣不管怎麼換電腦.我都可以從blog clone下代碼來繼續寫博文...


簡單說下思路:

1. 新建一個blog分支,用來每次提交代碼

2. master分支用於發布博客

3. 配置Travis CI,push到blog分支,利用hook來自動發布到master分支

不多說,看我博客,http://yeziahehe.com/2015/12/13/use_Travis_CI_auto_build_Hexo_static_blog/

有問題可以評論,我會隨時解答。


推薦閱讀:

The Verge 獲得 100 萬讀者花了多久?紐約時報呢?
像和菜頭或keso這樣的名博的收入是從哪裡來?
CSDN 泄密事件與推行微博實名制有關聯嗎?
怎麼創建一個自己的獨立博客?
中國有哪些優秀的IT博客?

TAG:博客 | GitHub | GithubPages | Hexo |