使用forks的Git LFS的工作流程是什么?

使用forks的Git LFS的工作流程是什么?,git,bitbucket,git-lfs,Git,Bitbucket,Git Lfs,我已经将Git LFS引入了我在bitbucket.org上的一个存储库。分叉此存储库的用户无法推送到他们的分叉,因为那里没有空间存放LFS文件。我的理解是,当您在那里创建存储库时,不会复制LFS文件 将Git LFS与Bitbucket一起使用是否意味着分叉不可能或至少不可用?或者Git是否有一个特殊的工作流/配置可以在这里提供帮助 请注意,在我的例子中,我使用fork主要是作为一种将工作持续到上游的方法,而这还没有准备好让我的团队的其他成员看到。例如,我将把我未完成的工作推到那里,这样我就可

我已经将Git LFS引入了我在bitbucket.org上的一个存储库。分叉此存储库的用户无法推送到他们的分叉,因为那里没有空间存放LFS文件。我的理解是,当您在那里创建存储库时,不会复制LFS文件

将Git LFS与Bitbucket一起使用是否意味着分叉不可能或至少不可用?或者Git是否有一个特殊的工作流/配置可以在这里提供帮助


请注意,在我的例子中,我使用fork主要是作为一种将工作持续到上游的方法,而这还没有准备好让我的团队的其他成员看到。例如,我将把我未完成的工作推到那里,这样我就可以在不同的物理位置继续工作。完成后,我将我的工作发布到
origin
,供团队其他成员查看。

这是一个已知问题,请参阅。我还希望Bitbucket(和Github!)能够改善这一点

后果:

  • LFS文件必须在fork和上游回购之间手动同步
  • Forks还将使用大量的文件存储空间,不仅仅是上游(有一个免费的存储配额,但在用完之后,您将不得不为每个fork付费,哎哟!)
  • 要将LFS文件从fork复制回上游,您需要对上游回购进行写访问,或者上游所有者必须自己完成
如何同步LFS文件:

  • 第一次克隆fork repo-它还没有复制任何LFS文件,因此必须在没有LFS文件的情况下克隆它(否则克隆将失败)
  • 导出GIT\u LFS\u SKIP\u SMUDGE=y
    git克隆
    
  • 同步上游->fork(将LFS文件复制到您的fork)-最初以及每次git获取上游时
  • git lfs fetch--all
    git lfs推送——全部
    
  • 同步分支->上游(仅当前分支)-每次合并PR后
  • git-lfs-fetch
    git-lfs推送
    
    如果有比这更好的工作流程,请让我知道。这是对Bitbucket LFS处理的严重限制

    export GIT_LFS_SKIP_SMUDGE=y
    git clone <address of your fork>
    
    git lfs fetch --all <upstream>
    git lfs push --all <fork>
    
    git lfs fetch <fork>
    git lfs push <upstream>