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.