0

描述 无法推送到裸仓库的问题

我是git新手,不知道我的操作是否正确。

  1. 在A电脑上创建一个bare repo,并安装lfs,然后将文件夹共享到本地网络
  2. 将裸仓库克隆到计算机 B 并安装 lfs,使用跟踪文件git lfs track "*.psd"
  3. git add .git commit -m 'lfs setup'
  4. 对 psd 文件进行一些更改
  5. git add .git commit -m 'some changes'
  6. git push origin master

接着... ...

$ git push
Uploading LFS objects: 100% (4/4), 46 MB | 0 B/s, done.
EOF
error: failed to push some refs to '<bare repo path>'

不知道有没有这样的办法可以解决问题?</p>

的输出git lfs env

裸仓库中的 git lfs env:

git-lfs/2.13.3 (GitHub; windows amd64; go 1.16.2; git a5e65851)
git version 2.31.1.windows.1

LocalWorkingDir=
LocalGitDir=<bare repo path>
LocalGitStorageDir=<bare repo path>
LocalMediaDir=<bare repo path>\lfs\objects
LocalReferenceDirs=
TempDir=<bare repo path>\lfs\tmp
ConcurrentTransfers=8
TusTransfers=false
BasicTransfersOnly=false
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
LfsStorageDir=<bare repo path>\lfs
AccessDownload=none
AccessUpload=none
DownloadTransfers=basic,lfs-standalone-file
UploadTransfers=basic,lfs-standalone-file
GIT_EXEC_PATH=C:/Program Files/Git/mingw64/libexec/git-core
git config filter.lfs.process = "git-lfs filter-process"
git config filter.lfs.smudge = "git-lfs smudge -- %f"
git config filter.lfs.clean = "git-lfs clean -- %f"

工作仓库中的 git lfs env(非裸):</p>

git-lfs/2.13.3 (GitHub; windows amd64; go 1.16.2; git a5e65851)
git version 2.31.1.windows.1

Endpoint=file:///<bare repo path> (auth=none)
LocalWorkingDir=
LocalGitDir=D:\lfs-repo\.git
LocalGitStorageDir=D:\lfs-repo\.git
LocalMediaDir=D:\lfs-repo\.git\lfs\objects
LocalReferenceDirs=
TempDir=D:\lfs-repo\.git\lfs\tmp
ConcurrentTransfers=8
TusTransfers=false
BasicTransfersOnly=false
SkipDownloadErrors=false
FetchRecentAlways=false
FetchRecentRefsDays=7
FetchRecentCommitsDays=0
FetchRecentRefsIncludeRemotes=true
PruneOffsetDays=3
PruneVerifyRemoteAlways=false
PruneRemoteName=origin
LfsStorageDir=D:\lfs-repo\.git\lfs
AccessDownload=none
AccessUpload=none
DownloadTransfers=basic,lfs-standalone-file
UploadTransfers=basic,lfs-standalone-file
GIT_EXEC_PATH=C:/Program Files/Git/mingw64/libexec/git-core
git config filter.lfs.process = "git-lfs filter-process"
git config filter.lfs.smudge = "git-lfs smudge -- %f"
git config filter.lfs.clean = "git-lfs clean -- %f"

4

2 回答 2

0

Git LFS 支持本地fileURL 并且可以将对象推送到本地存储库和从本地存储库推送对象,但它目前不处理 Windows SMB 路径语法。那是因为没有核心开发人员使用该功能,也没有人发送补丁来实现它。

如果您为 SMB 共享分配驱动器号,Git LFS 的下一个版本 3.0.0 应该可以正确处理它,如果您在远程端安装合适的服务器,它也将支持通过 SSH 连接。前者已经在main分支机构中可用,后者将很快推出。

于 2021-05-19T22:40:30.570 回答
0

Git LFS 是 Git 的扩展,它不是 git 本身的一部分。它基本上是一个存储大文件的 HTTP 服务器,而只有元数据被推送到存储库。LFS 服务器 API在此处记录。

如果要使用本地裸存储库,可以使用lfs-test-server作为本地 LFS 服务器。它只应该用于测试目的,而不是 PRODUCTION READY。如果你需要一个生产就绪的 LFS 服务器,你应该考虑自托管一个 Gitlab 或 Gitea 实例(如果需要,它们可以托管在你的本地机器上)。

于 2021-05-18T12:51:40.290 回答