我需要在离线的机器上工作,无法访问我的存储库。但我不想完全放弃使用Git。
问题:
- 通过存储设备将存储库复制到离线机器的最佳方法是什么?
- 是否有一种通过文件系统复制补丁的方法?
编辑:我应该声明,我必须把存储设备交给管理员进行复制,即我不能用我的用户挂载存储设备。
我需要在离线的机器上工作,无法访问我的存储库。但我不想完全放弃使用Git。
问题:
编辑:我应该声明,我必须把存储设备交给管理员进行复制,即我不能用我的用户挂载存储设备。
.git
;它包含了一切。Git使用安全文件名并忽略仓库内部的时间戳,因此这些数据不受通常的文件系统问题的影响。.git
文件夹复制到其中。现在,git checkout <branch>
将让您得到一个工作副本。git format-patch <branch>
会创建它们。该命令将创建更新远程仓库所需的所有补丁(即输出将包含尚未推送的所有内容)。您还可以给它提交ID(=从此提交开始)或范围。git am < 0001....
。如果您需要将存储库复制到存储器棒中,只需使用git clone
命令,然后使用git pull
命令进行更新。
例如,在您的在线计算机上,挂载存储器棒后,请执行以下操作:
cd <memory-stick-mount-point>
git clone <local-path-to-git-repo>
<local-path-to-git-repo>
将成为您的 USB 硬盘上仓库的 origin
远程存储库, 因此,在您将其挂载到在线机器时,您只需使用 git push/pull
即可同步离线工作。.git
的目录,它就是.git
目录但可以有任何名称。 - drRobertzgit bundle
就是为此设计的。例如,要在离线状态下克隆存储库的主分支。cd my-repository
git bundle create offline-repos master
这将会把整个master
分支存储在名为offline-repos
的文件中。拷贝该文件到另一台电脑。在那台电脑上,输入以下命令:
git clone -b master offline-repos new-repos
这将创建名为new-repos
的文件夹,并从offline-repos
检出。您克隆的捆绑文件将被视为远程存储库。您甚至可以创建一个捆绑文件来存储自某个ref以来的更改,例如:
git bundle create offline-repos e45ad329..master
如果您将捆绑文件offline-repos
替换为包含新更改的捆绑文件,则可以进行git pull
操作,例如:
cd new-repos
git pull
format-patch
并将补丁发送到自己的电子邮件中,以避免涉及系统管理员来保持离线存储库同步。 - drRobertz