带分叉的Git LFS的工作流程是什么?

时间:2019-03-26 14:02:36

标签: git bitbucket git-lfs

我已经将Git LFS引入了我在bitbucket.org上的一个存储库中。派生此存储库的用户无法进行派生,因为那里没有LFS文件的空间。我的理解还在于,当您在此处存储存储库时,不会复制LFS文件。

将Git LFS与Bitbucket一起使用是否意味着无法进行分叉或至少可用?还是有专门的Git工作流程/配置可以在这里提供帮助?

请注意,在我的情况下,我主要将fork用作保持上游工作的一种方式,而其他团队尚未看到这种方式。例如,我会将不完整的工作推送到那里,以便可以在其他物理位置继续工作。完成后,我将工作发布到origin,供团队其他成员查看。

1 个答案:

答案 0 :(得分:1)

这是一个已知问题,请参见current limitations for Git LFS with Bitbucket。我也希望Bitbucket(和Github!)能够改善这一点。

后果:

  • LFS文件必须在fork和上游仓库之间手动同步
  • 叉也将使用大量的大文件存储空间,而不仅是上游(有免费的存储配额-但在用完配额后,您将需要为每个叉付费, ouch!)< / li>
  • 要将LFS文件从fork复制回上游,您要么需要对上游仓库的写权限,要么上游所有者必须自己做

如何同步LFS文件:

  1. 第一次克隆fork仓库-它尚未复制任何LFS文件,因此您必须在没有LFS文件的情况下对其进行克隆(否则克隆将失败)
export GIT_LFS_SKIP_SMUDGE=y
git clone <address of your fork>
  1. 同步上游-> fork(将LFS文件复制到fork)-最初以及每次git提取上游
git lfs fetch --all <upstream>
git lfs push --all <fork>
  1. 同步分支->上游(仅当前分支)- PR合并后的每次
git lfs fetch <fork>
git lfs push <upstream>

如果有比这更好的工作流程,请告诉我。这是对Bitbucket LFS处理的严重限制。