把Git Repository建到U盤上去

Git很火。原因有三:

它是大神Linus Torvalds的作品,天然地具備神二代的氣質和品質;
促進了生產力的發展,Git的分布式版本控制理念,并非首創,但非常適合開源社區的協作方式(不存在master-slave的關系)
GitHub
GitHub很好,號稱代碼界的facebook.

facebook,twitter,Microsoft,vmware,redhat,LinkedIn,Yahoo等公司都在GitHub上有建立數目不等的repositories。一些知名開源項目,例如jQuery, Ruby on Rails,node.js都把src code寄存于GitHub上。GitHub太成功了,以至于使很多人產生誤解,以為git就是GitHub,使用git就必須連接GitHub。事實上,GitHub只是一個提供git repository hosting服務的網站。

本文試圖講解如何在U盤上創建git repository(使U盤成為你的私有代碼云);以及如何在不同客戶端進行同步作業。把git repository建在USB盤上能滿足多種應用場景,特別是:

注重私密性(GitHub上普通賬號不能創建私有repository)
網速很慢,甚至斷網的時候需要同步
但不適合需要強collaborate的項目。

前提條件

先把git給裝好了…然后…我們有了兩臺git ready的電腦,和一個U盤。

開始,1,初始化本地repository

假設有一個存在的項目,需要由git接管版本控制,那么來到這個%projct_home%目錄(例如我的git_sandbox)下
step 1.1
初始化

$ git init git_sandbox
step 1.2
創建.gitignore文件(在%project_home%下,只對這個project有效),排除路徑下不需用被提交到repository中的文件(例如.svn,.class, Thumbs.db…)
step 1.3
查看當前文件狀態,可以看到有一堆”untracked files”

$ git status
step 1.4
把所有”untracked files”加入索引

$ git add .
step 1.5
提交到repository

$ git commit -m "initialized."
2, 搞到U盤上去

step 2.1
插上U盤,查看U盤掛載路徑

$ mount

我的路徑是”/Volumes/KINGSTON”

step 2.2
在U盤上創建一個repository,

$ mkdir /Volumes/KINGSTON/workspace/usbGitSpace/gitusb_sandbox
$ cd /Volumes/KINGSTON/workspace/usbGitSpace/gitusb_sandbox
$ git init --bare
使用–bare選項創建的repository被稱作bare repository,它不會包含working目錄(只包含.git目錄下的內容),所以不適合在上面改code。bare repository主要的作用就是被push和pull。根據GitFaq的說法:

A quick rule of thumb is to never push into a repository that has a work tree attached to it, until you know what you are doing.

step 2.3
回到本地%project_home%,把初始化后的usb repository添加為remote repository

$ git remote add usb /Volumes/KINGSTON/workspace/usbGitSpace/gitusb_sandbox
將本地的repository push到usb上

$ git push usb master
3, 同步到另一臺電腦

step 3.1
在另一臺電腦上先創建一個本地repository

$ cd ~/my_gitspace/sandbox_win
$ git init
step 3.2
把U盤插到這個電腦上,查看當前掛載的路徑,添加U盤作為當前repository的remote repository

$ git remote add usb /cygdrive/f/workspace/usbGitSpace/gitusb_sandbox
step 3.3
把U盤上的內容拉下來

$ git pull usb master
好了,代碼同步到另一臺機器上了

4, 測試一下

step 4.1
改動一下文件,比如README.txt
step 4.2

$ git add README.txt
$ git commit -m "update from another laptop"
$ git push usb master
step 4.3
插回原來的laptop

$ git pull usb master
step 4.4
查看提交歷史

$ git log
發現兩臺電腦上提交的記錄都在log里面

好了,成功?,F在U盤成為了你的GitHub,你和你的代碼之間,再沒有阻隔。

當然,最后,需要定期給U盤做一個備份。技術發展到今天,數據安全靠天吃飯的日子已經一去不復返了,沒有什么U盤,硬盤是靠得住的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容