本文章首發於個人博客,歡迎點擊閱讀。
因爲有兩臺電腦的關係,很多東西都需要同步,一般文件比較小的會用Onedrive
,文件比較大的比如Hexo會選擇用GitHub
(主要貧窮的我只有5G的免費空間)。
相比於其它普通文件夾直接push就可以同步,這個就稍微麻煩一點,因爲整個文件夾裏有多個含有git的文件夾。
而在第一次直接把跟目錄push上去以後,甚至遇到了這個網站yueyue200830.github.io
的github全部被覆蓋。
當時整個人內心都十分崩潰。。。
解決方法之概念
首先,我們需要了解一下hexo是如何push到github上的
在根目錄尋找一圈後,會發現有一個.deploy_git
的文件夾,打開發現和github上面的文件完全一樣。
沒錯了,hexo就是直接編譯在這個文件夾生成文件,然後push到github上面。
然而,不要高興太早,如果單純的push爲什麼換電腦是覆蓋而不是有任何的conflict信息呢?
在.deploy_git
文件夾在打開git bash
,輸入git remote -v
,發現竟然什麼也沒有???
介於自己完全不熟練git
命令,打開了外部有同步的文件夾同樣輸入git remote -v
,是會得到以下顯示的
雖然不清楚發生了什麼(對不起,我就是一個git小白)。。但是可以知道我們git倉庫沒有github上面的信息
也就是每次hexo在deploy的時候,是直接把整個倉庫替換上去的(好粗暴呀。。)
而再去看一下整個項目的github,發麪默認的gitignore裏把.deploy_git
添加上了。
也就是說同步的時候根本沒有任何之前發佈的信息,所以當換了一臺電腦的時候就會遇到如此崩潰的事情了。
解決方法之實際操作
既然.deploy_git
和項目各會同步在我的github上,那麼與其取消ignore,不如在.deploy_git
上添加遠程倉庫,每次更新前做一個同步。
在.deploy_git
文件夾的終端下輸入以下內容,讓其連接到github倉庫(注意在最後加上.git
)
$ git remote add origin https://github.com/yueyue200830/yueyue200830.github.io.git
這個時候,我們再輸入git remote -v
,可以看到有信息了
再把remote和本地的進行一次同步:(應該用pull也可以)
$ git push origin master
這樣,我們就在本地同步與github同步成功了,只需要再另一臺電腦上也進行以下同步配置,之後每次換電腦的時候只需要兩個文件夾各同步一下就可以啦。