1. 程式人生 > >Github免費賬戶使用”私有庫“

Github免費賬戶使用”私有庫“

        根據Github的免費策略,使用者提交的內容是必須要要公開的,天下沒有免費的午餐嘛,如果想免費用就要貢獻一點東西出來,這個還是很合理很有利於促進開源社群發展的。

但是,總有一些時候,我們想利用Github來儲存一點私人的東西,可是作為免費使用者又不能建立private庫,這時可以利用一下這個專案GithubHub:https://github.com/Anchor89/GithubHub

這個專案其實裡面只有一個檔案,就是一個Bash指令碼,所以目前只支援linux或者是cygwin。windows使用者可以考慮安裝cygwin,如果有哪位有心情寫個bat話,歡迎pull給我~

GithubHub的原理是這樣,既然我可以在Github上存放任何內容,那麼我自然也可以存放另外一個Git repository了,然後我還不想讓別人看到這些repo。。。怎麼辦呢。。。啊哈!只要對repos進行加密就好了!這就是GithubHub的原理了,很簡單吧。

使用的方法是這樣的:

0.首先在你的Github上建立一個名字為root的專案。確保本機上安裝了openssl和tar

1.在你本機上建立一個資料夾,假設叫some_dir吧,把GithubHub裡面的那個github.sh 給複製進來。

2.然後在some_dir裡git clone你在Github上的root專案,這樣就會在some_dir中出現一個root資料夾。

3.開啟終端,執行‘github.sh init’。這個命令會在當前資料夾中建立加密用的金鑰和一個名字為leaf的資料夾。

4.進入leaf資料夾,用'git init --bare'新建一個本地的裸git庫,假設名字叫secret。

5.隨便換到其他一個目錄下,git clone path/some_dir/leaf/secret,就建立了裸庫的工作目錄了,然後在這個目錄下像平常一樣做一些修改,提交,推送。這時的推送(push)是將更改的內容push到本地leaf/secret的裸git庫中,如果要更新到github上,還需要下面一步。

6.呼叫github.sh push secret,其中secret是你想push到github上的庫的名字,這個命令會把leaf檔案件下的secret資料夾打包壓縮,然後放到root資料夾下。然後在root下執行git add secret && git commit .. & git push。至此,你的內容就被加密存放到Github上root庫下了。

7.當你想從Github上獲取加密的檔案時,請用github.sh pull secret。這個命令會將root的內容pull到本地,然後把root下的secret解密解壓到leaf資料夾下成為secret資料夾,之後從本機的其他資料夾裡繼續pull就可以了。

關於金鑰檔案:

加密和解密的檔案時對應且不可重複生成的,所以這兩個金鑰檔案可要好好儲存,一旦丟失話,就不能對已經存上去的內容解密了。。。

當然,你如果想更換金鑰話,請先保證leaf下都是最新的已解密git庫,然後替換金鑰檔案,執行相應的github.sh命令就可以了。