复制 git 存储库及其 GIT-LFS 设置
Posted
技术标签:
【中文标题】复制 git 存储库及其 GIT-LFS 设置【英文标题】:Duplicating a git repository and its GIT-LFS settings 【发布时间】:2016-11-13 21:47:37 【问题描述】:我已经将一个 repo 复制到一个较新的 repo 中,但是在新 repo 上执行 git clone 时,它无法使用 LFS 指针下载文件,并且在使用 smudge 时出现错误... 例如...“下载对象时出错。在服务器上找不到对象”
步骤:
git clone --bare https://github.com/myuser/old-repo.git
cd old-repository.git
git push --mirror https://github.com/myuser/new-repo.git
git clone https://github.com/myuser/new-repo.git
[error.....git-lfs.exe smudge --- somefile.....Error downloading object]
分支和提交历史看起来不错,但 LFS 无法下载所需的文件。使用 git-lfs 时还有其他方法吗?
【问题讨论】:
你找到答案了吗?我正在尝试做同样的事情,目前看来我必须在保留项目历史或继续使用 LFS 之间做出选择。我宁愿不必做出这样的选择。 【参考方案1】:我发现了这个链接:mirroring-a-repository-that-contains-git-large-file-storage-objects
它似乎完全回答了你的问题。
您错过的重要部分是git lfs push/pull
:
git clone --bare https://hostname/exampleuser/old-repository.git
cd old-repository.git
git lfs fetch --all
git push --mirror https://hostname/exampleuser/new-repository.git
git lfs push --all https://github.com/exampleuser/new-repository.git
【讨论】:
嗯,这让我觉得自己像个白痴,虽然它很简单,但绝对能完成我想做的事情。谢谢!【参考方案2】:钩子和插件等是 repo-local 配置,如果您的 git-lfs 设置在某种程度上难以执行第二次提交 repo-setup 脚本来执行它并在第一次结帐时运行它。
【讨论】:
【参考方案3】:您也可以使用 git 协议进行克隆,LFS 资产仍将通过 http 拉下,这可能会根据您的 LFS 服务器产生密码提示,因为预共享的 sshs 密钥不会用于 LFS 资产的身份验证。
git clone git@github.com:username/my_lfs_repo.git destination_dir
【讨论】:
以上是关于复制 git 存储库及其 GIT-LFS 设置的主要内容,如果未能解决你的问题,请参考以下文章