USB 快閃記憶體盤上的 Git/倉庫
無需依賴託管公司來儲存您的中心倉庫,也無需依賴中心伺服器或網際網路連線來貢獻專案更改,您可以使用可移動儲存器來交換和更新本地倉庫。
基本步驟如下:
- 將可移動儲存器掛載到預定的路徑
- 在可移動儲存器中設定一個裸倉庫
- 將可移動儲存器中的倉庫新增為遠端倉庫
在本文件中,假設倉庫將掛載在 /media/repositories。
假設我們正在啟動一個全新的專案,名為 Foo。參與 Foo 專案的人員將使用可移動儲存裝置作為整個專案的中心倉庫。因此,讓我們在 USB 快閃記憶體盤中建立一個新的倉庫。
首先,我們不會依賴作業系統自動生成的路徑名,而是將 USB 快閃記憶體盤掛載到自定義路徑。假設 USB 快閃記憶體盤位於 /dev/sdb1,目標掛載點為 /media/repositories。另一個重要方面是 USB 快閃記憶體盤需要以正確的許可權掛載,以避免在倉庫中出現問題。為了避免這些問題,可以使用您的使用者 ID 和組 ID 掛載 USB 驅動器,可以透過以下命令實現:
$ sudo mkdir /media/repositories
$ my_uid=`id -u`
$ my_gid=`id -g`
$ mount -o "uid=$my_uid,gid=$my_gid" /dev/sdb1 /media/repositories
將 USB 驅動器掛載到所需路徑後,讓我們建立一個裸倉庫。
$ cd /media/repositories
$ mkdir /media/repositories/foo
$ git init --bare /media/repositories/foo
Initialized empty Git repository in /media/repositories/foo
完成此步驟後,我們在 USB 快閃記憶體盤中建立了一個倉庫。現在,只需將 USB 快閃記憶體盤掛載到任何計算機上的特定路徑,克隆倉庫,然後開始工作即可。
$ git clone /media/repositories/foo
Cloning into 'foo'...
warning: You appear to have cloned an empty repository.
done.
完成。
如果掛載點更改為其他路徑(在某些情況下,自動掛載會執行此操作),則可以透過以下命令設定倉庫的 URL:
$ git remote set-url origin file://<path to new mount point>
假設您一直在開發一個專案,並且已經擁有一個在桌面上工作的 Git 倉庫。現在,您決定想要跟蹤和更新該倉庫的幾個併發版本,而無需使用網路連線。一種可能的解決方案是在 USB 快閃記憶體盤上啟動一個 Git 倉庫,並將該 USB 快閃記憶體盤用作中心倉庫,每個人都可以將他們的貢獻推送到該倉庫並更新他們的本地版本。
要在 USB 快閃記憶體盤上啟動一個 Git 倉庫,首先讓我們將 USB 快閃記憶體盤掛載到選定的路徑。這可以透過上一節中描述的過程來實現。
$ sudo mkdir /media/repositories
$ my_uid=`id -u`
$ my_gid=`id -g`
$ mount -o "uid=$my_uid,gid=$my_gid" /dev/sdb1 /media/repositories
假設專案樹位於 ~/devel/foo。要在 /media/repositories/foo 上啟動一個倉庫,請執行以下命令:
git clone --bare ~/devel/foo foo
就這樣。
現在,您可以克隆儲存在 USB 驅動器中的 Git 倉庫,並繼續您的專案工作。
$ git clone /media/repositories/foo/
Cloning into 'foo'...
done.
如果您希望將新建立的 USB 倉庫作為遠端倉庫新增到本地倉庫,請執行以下操作:
$ git remote add usb file:///media/repositories/foo
要將 USB 倉庫的主分支設定為本地主分支的上游分支,必須獲取新新增的遠端分支的內容,並指定上游分支。此步驟透過執行以下命令來完成:
$ git fetch usb
From file:///media/repositories/foo
* [new branch] master -> usb/master
$ git branch --set-upstream-to=usb/master
Branch master set up to track remote branch master from usb.