Git lfs是从本地裸仓库获取的?还是LFS文件的其他本地副本?

时间:2019-11-22 03:56:54

标签: git github git-lfs

我的小组正在与另一个小组在一个项目上进行协作,我们为此建立了一个GitHub组织。现在协作结束了,我们将要从GitHub删除组织,我需要为团队工作的存储库做一个本地副本。

我的理解是git clone --bare <url>是执行此操作的好方法,但是其中一些存储库使用LFS。我希望我可以按照here的说明进行操作,除了可以将裸存储库克隆到本地,而不是推送到新的远程服务器。换句话说,我想这样做:

git clone --bare git@github.com:<organization>/somerepo.git
cd somerepo.git/
git lfs fetch --all
cd ..
git clone somerepo.git/
cd somerepo
# View source code, build, checkout other branches, etc.

,我希望LFS可以直接从裸仓库中获取。不幸的是,正如我所担心的那样,它似乎无法正常工作。

是否有一种方法可以做到这一点,或者获得存储库的本地工作副本,包括所有分支和标签以及所有大文件的本地副本?如果有关系,我们不需要添加新的提交,只需签出不同的分支并访问所有文件。

2 个答案:

答案 0 :(得分:1)

使用Git LFS 2.9.0,如果将其指定为绝对文件URL,则可以从本地存储库进行克隆。不支持本地路径,但本地路径将在Git LFS 2.10.0中。

此外,如果您使用的是Windows,则当前需要使用%3a而不是冒号。您不是,但其他人是,这是常见的问题来源。此要求也应在2.10.0中取消。

因此,从本质上讲,您用于克隆Git的URL应该类似于以下内容:file:///home/nick/checkouts/somerepo.git

答案 1 :(得分:0)

您应该选择transfer your repository from your organisation to your user account

  

如果转移的存储库使用Git大文件存储,则所有Git LFS对象都会自动移动。
  这种转移发生在后台,因此,如果您有大量的Git LFS对象,或者如果Git LFS对象本身很大,则转移可能需要一些时间。

     

在转移使用Git LFS的存储库之前,请确保接收帐户具有足够的数据包来存储将要移动的Git LFS对象。
  有关为用户帐户添加存储的更多信息,请参阅“ Upgrading Git Large File Storage.