git - 使用 LFS 初始化裸 git 仓库

标签 git github git-lfs

我想在支持 git LFS 协议(protocol)的外部驱动器 (git init --bare reponame) 上初始化几个本地 git 存储库。 IE。克隆这些之后,我希望能够通过 LFS 跟踪大文件(文件的版本应该存储在外部驱动器上)

在没有任何额外步骤的情况下这样做是行不通的(即克隆空仓库,使用 git LFS 跟踪大文件,并尝试推送到远程):

Git LFS: (0 of 122 files) 0 B / 157.56 MB
http: Post /media/me/bigdrive/git_repos/coding.git/info/lfs/objects/batch:
      unsupported protocol scheme ""
http: Post /media/me/bigdrive/git_repos/coding.git/info/lfs/objects/batch:
      unsupported protocol scheme ""
error: failed to push some refs to '/media/me/bigdrive/git_repos/coding'`

我没有找到关于如何执行此操作的指南,而且 LFS 手册页似乎也没有提供解决方案。 GitHub/BitBucket 指南仅说明如何在本地存储库上执行此操作,然后推送到其服务器上正确配置的 git 存储库

感谢任何帮助,谢谢!

最佳答案

我遇到了类似的问题,但设法使其正常工作。

第 1 步:

下载并启动 LFS 服务器(如果您尚未这样做),例如 https://github.com/git-lfs/lfs-test-server (不要在生产中使用这个。)

第 2 步:

为您的存储库正确设置 LFS 服务器 URL,如下所述:https://github.com/git-lfs/git-lfs/wiki/Tutorial#lfs-url

就我而言,在我的工作副本文件夹中运行以下命令就足够了:

git config -f .lfsconfig lfs.url http://username:password@localhost:8080
git add .lfsconfig

用您想要的凭据替换用户名和密码,用您的 Git 服务器 URL 替换 localhost:8080。

您可以运行 git lfs env 来验证您的结果。

第 3 步:

按照此处所述设置您的 LFS_ADMINUSERLFS_ADMINPASS 环境变量:https://github.com/git-lfs/lfs-test-server#running

然后,您应该可以访问http://localhost:8080/mgmt (或您的 LFS 服务器运行的任何地方)在您的浏览器中并添加您的凭据。

Git LFS User Management.

结果看起来很有希望:

C:\Users\Nick\Desktop\WorkingCopy\Repo>git push origin master
warning: current Git remote contains credentials
warning: current Git remote contains credentials
Git LFS: (1 of 1 files) 6.72 KB / 6.72 KB
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 428 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To C:/Users/Nick/Desktop/WorkingCopy/../Repo
   309629f..7fe106d  master -> master

LFS 服务器的 lfs-content 文件夹现在包含一个文件,其大小与添加的文件完全相同。

lfs-content folder on server-side.

关于git - 使用 LFS 初始化裸 git 仓库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41912442/

相关文章:

api - 从带有特定标签的 repo 中获取所有 Github 问题?

nginx - 如何增加 gitlab CE lfs 文件大小限制以避免出现 500 服务器错误?

Git checkout 分支并修剪与先前 checkout 相关的所有内容(包括 git-lfs 保留)

github - 如何在 VSTS 自动构建中对私有(private) Github 子模块进行身份验证?

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

git - 两个文本 html 文件之间的差异

git - 复制文件及其整个历史

Git Push 不要求输入密码并给出 401。在控制台中内联输入密码时很好

linux - Git - 自动 pull 入服务器

git - 撤消 master 分支中的cherry-pick