用Dropbox變成Git的server

Git是一個大家非常愛用的版本管理軟體,跟SVN不一樣的作用是它可以離線的方式去commit目前已變更過的檔案。
GitHub就是一個非常不錯的線上檔案倉儲中心,但你所上傳的原始碼會完全開放一覽無遺,除非你要付費變成close的狀態。
所以,在Git還沒變成線上的狀態時,它在你本機上就只是個非常單純的版本管理軟體了。
而,當賈伯斯說Dropbox只是一個功能,不是一個產品時。它大概己經在角落哭哭了。
Dropbox是一個非常棒的線上同步服務,只要你想要同步到別台電腦的檔案放在Dropbox的資料夾中,它就會幫你做任何的線上備份,並且同步你已更新好的檔案。
通常,我用Dropbox的做法就是把我寫的code都放到這裡頭,它自然就幫我做備份,所以我常常搞壞硬碟的本命,都不必擔心重要心血付諸流水。但是,它並沒有幫我做版本控制功能,因此,哪一天我酒喝多了,把code給改爛了,那我就開始發酒瘋之類的 XD
做法:
在Dropbox的資料夾中,新增一個專門放Git的repo。並再新增一個資料夾來存放目前開發中的專案。
[cc lang=”bash”]
$ mkdir ~/Dropbox/git-repos
$ cd ~/Dropbox/git-repos/
$ mkdir test01
$ cd test01
[/cc]
建立一個git的repo最好是一個專案一個repo,這樣之後也能分別管理所開發中的專案(也就是大家所說的project)。
在這個專案的目錄內輸入指令:
[cc lang=”bash”]
$ git init –bare
[/cc]
此時它會幫你在這個目錄中做一些整理,然後出現這個訊息:
[cc lang=”bash”]
Initialized empty Git repository in /home/your/dropbox/git-repos/test01
[/cc]
然後切換到自己開發的專案目錄中(你正在寫code的目錄),例如 /home/your/projects/test01,然後下指令
[cc lang=”bash”]
$ cd ~/projects/test01
$ git init
[/cc]
此時git就在你開發的專案目錄中開始初使化,並產生.git的目錄來做未來版本控制的資訊。
完成之後,把另外一邊的repo跟你現在寫code的目錄連接起來。
[cc lang=”bash”]
$ git remote add origin /home/your/Dropbox/git-repos/test01
[/cc]
之後就完成了建立repo跟Dropbox的同步。
測試:
接著試一下是不是真的有達到心中的理想,在你目前寫code的目錄中touch一個檔案。然後寫些內容。
[cc lang=”bash”]
$ touch test.txt
$ vim test.txt
[/cc]
存檔之後,輸入以下指令,將剛剛修改過的檔案進git的管控列表。
[cc lang=”bash”]
$ git add -A
[/cc]
然後,commit到git中。
[cc lang=”bash”]
$ git commit -a
[/cc]
它會再開啟一個編輯器畫面,請輸入一些brabra的資訊,然後存檔,它就幫你commit完了。
這時它只是在你的.git的目錄中保存一些該檔案的變更資訊,你必需還要再做一個動作讓它更新到Dropbox的目錄中
[cc lang=”bash”]
$ git push origin master
[/cc]
做到這邊,你所寫的code就可以達到完全的保障,而且也不會像GitHub那樣被公開。

多電腦開共同開發:
這裡指的多電腦共同開發的意思是,你有好幾台電腦,一台放家裡,一台在公司,又一台在筆電上,假設你都建立好了開發環境,你只是想要在不同的地方寫code開發專案。也許你很孤獨沒人會跟你共同開發的…….
你就可以在另一台電腦上這樣做,
[cc lang=”bash”]
$ git clone /home/Dropbox/git-repos/test01
[/cc]
就會在你的電腦裡clone一個一樣的檔案出來,這樣子就可以繼續在另一台電腦寫code了。記得寫好之後要做到git commit 跟git push即可再把code寫回Dropbox然後由Dropbox執行同步與備份的工作了。
如果你已經有多台電腦共同開發,而且已經clone過了專案,卻想要更新自己在別台電腦所寫的code在自己本來的電腦上繼續完成code,就輸入這個指令。
[cc lang=”bash”]
$ git pull origin master
[/cc]
此時本地的檔案就會被更新。

Related Posts Plugin for WordPress, Blogger...

4 thoughts on “用Dropbox變成Git的server”

  1. 感謝你的分享,我照著做沒有問題:)

    好像有一個不重要的小錯誤
    到數第二段code : /home/Dropbox/git-repos/test01
    應該是 /home/your/dropbox/git-repos/test01 才對

    再次感謝您的分享!!!

    有些疑問:

    1.有些疑問是git push origin master 是怎麼知道push到 /home/使用者/Dropbox/git-repos/test裡
    ,如果換電腦在新環境下怎麼辦呢?
    2.還有如果有很多個專案要push的話,git 要怎麼知道要push到Dropbox下的哪一個專案資料夾呢?

    1. Hi jex 您好,恭喜你把上述的範例給試出來了,相信您對於用git push 到遠端為您的code做備份的方法有些了解。
      另外您的問題,為什麼在git push origin master 之後git能知道origin的路徑呢,您可以去開啟這個檔案 .git/config 裡面都有remote的相關資訊,你就會恍然大悟了 😀

  2. Pingback: Dropbox CLI 方法

Leave a Reply