我已将 Git LFS 引入到我在 bitbucket.org 上的一个存储库中。分叉此存储库的用户无法推送到他们的分叉,因为那里没有空间可容纳 LFS 文件。我的理解是,当您在那里分叉存储库时,LFS 文件不会被复制。
将 Git LFS 与 Bitbucket 结合使用是否意味着分叉不可能或至少可用?或者 Git 是否有特殊的工作流程/配置可以在这里提供帮助?
请注意,就我而言,我使用分叉主要是为了将上游工作持久化,但团队其他成员尚未准备好看到这些工作。例如,我会将未完成的工作推到那里,以便我可以在不同的物理位置继续进行。完成后,我将作品发布到origin
供团队其他成员查看。
这是一个已知问题,请参阅Git LFS 与 Bitbucket 的当前限制 https://support.atlassian.com/bitbucket-cloud/docs/current-limitations-for-git-lfs-with-bitbucket/#CurrentlimitationsforGitLFSwithBitbucket-GitLFSfilesarenotcopiedwhenarepoisforked。我也希望 Bitbucket(和 Github!)能够改进这一点。
结果:
- LFS 文件必须在 fork 和上游存储库之间手动同步
- 分叉还将使用大量的大文件存储空间,而不仅仅是上游(有免费的存储配额 - 但在用完之后,您将不得不为每个分叉付费,ouch!)
- 要将 LFS 文件从分支复制回上游,您需要对上游存储库进行写访问,或者上游所有者必须自己执行此操作
如何同步 LFS 文件:
- 第一次克隆 fork 存储库 - 它还没有复制任何 LFS 文件,因此您必须在没有 LFS 文件的情况下克隆它(否则克隆将失败)
export GIT_LFS_SKIP_SMUDGE=y
git clone <address of your fork>
- 同步上游 -> fork(将 LFS 文件复制到您的 fork)-最初和每次 git fetch 上游时
git lfs fetch --all <upstream>
git lfs push --all <fork>
- 同步 fork -> 上游(仅当前分支)-每次你的 PR 合并后
git lfs fetch <fork>
git lfs push <upstream>
如果有比这更好的工作流程,请告诉我。这是 Bitbucket LFS 处理的严重限制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)