我确信这可以做到,我只是不确定正确的方法.
我的方案是将USB驱动器,本地硬盘驱动器和网络驱动器都连接到我的PC.本地硬盘驱动器将包含本地工作的本地活动仓库.网络驱动器(具有长UNC路径!)将包含充当上游参考副本的主裸存储库(办公室中的2个或3个协作者),而USB驱动器充当我的移动拷贝到一些外部PC的sneakernet(我的其他合作者有自己的驱动器,这可能会影响答案).(这是在windows msysgit上).
正是关注USB驱动器的设置,并确保我将工作流指向正确的方向(请参阅使用-git-on-usb-stick-for-travel-code.
您可以使用具有USB记忆棒的长UNC路径从repo创建一个裸到裸克隆
cd /e/src git clone --bare //server/path/to/your/network/repo.git
但我怀疑它只需一步就可以为你买得多.
鉴于您将在当地的活跃仓库中工作,我会在USB记忆棒上创建一个裸仓库
cd git init --bare /e/src/myproject.git
在本地活动仓库中创建一个远程
git remote add usb file:///e/src/myproject.git
然后根据需要推送它.
git push usb philip/cool-new-feature
上面的命令假设您的USB记忆棒是E:并且您的工作目录在您的本地活动仓库中.
据我了解您的问题,您至少有两个不相交的协作者集合,具体取决于您的其他协作者是否共享他们自己的共同中央存储库,或者是否都在使用隔离的计算机.这意味着USB记忆棒上的存储库是每个人(最终)都可以访问的存储库,因此您的团队成员将大部分时间花在"飞机上"上.
设计开发过程的建议:
您可以这样做的一种方法是让每个人都保持干净的主人并仅在其他分支上进行更改.物理拥有USB记忆棒是一种自然的集成令牌,因此当给定的协作者拥有它时,序列就会出现
git checkout master git pull usb master # should always be a fast-forward git merge feature1 make test # or whatever, and repeat until no breakage git commit git push usb master git push shared master # if appropriate git merge feature2 # if necessary ...
您可以从任何一个克隆。USB 驱动器完成后,您可以将其移除。您可以在使用后仔细检查完整性
git fsck --full
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5958 次 |
| 最近记录: |