请帮助我理解下面的错误消息的含义以及如何遵守其要求。
我想复制一个已有的本地git repo;然后将该副本推送到新创建的远程设备。
但我得到了以下错误:
这个仓库是为Git LFS配置的,但是在您的路径中找不到'git-lfs'。如果您不想再使用Git LFS,请删除. git/hooks/pre-push来删除这个钩子。
在收到此消息之前,我使用的代码是:
# create new git repo at https://github.com/username/foo-bar.git
cp -r OldProject/ NewProject/
cd NewProject/
git remote remove origin # Remove prior origin from copy operation
git init
git remote add origin https://github.com/username/foo-bar.git
git add -A
git commit -m "first commit"
git push -u origin master
我做错了什么,我该如何修复它?请帮助我理解以上错误消息的含义,以及如何遵守它的要求。
6条答案
按热度按时间hrysbysz1#
此存储库配置为Git LFS,但在路径中找不到'git-lfs
LFS是"Large File Storage",是git的扩展名,它可以将大文件保存在仓库之外,这样就不会变慢。当错误消息显示"not found on your path"时,意味着git正在寻找一个你还没有安装的程序,你可以按照https://git-lfs.github.com/上的说明安装它。
顺便说一下,钩子是当你执行某个操作时git运行的一段代码,它们存储在仓库的隐藏目录
.git/hooks
中。6rqinv9w2#
Git大文件存储(LFS)将音频样本、视频、数据集和图形等大文件替换为Git中的文本指针,同时将文件内容存储在远程服务器上,如www.example.com或GitHub Enterprise。GitHub.com or GitHub Enterprise.
最简单的方法可能就是运行以下命令来安装Git Large File Storage:
ztmd8pv53#
我遇到了同样的问题,通过删除.git/hooks/pre-push解决了这个问题
62o28rlo4#
我想我已经为使用SourceTree的人解决了这个问题,对我来说,因为我在一台新机器上安装SourceTree之前安装了git,所以SourceTree使用的是git的嵌入式版本,我猜它没有安装git lfs。
所以我去了Tools〉Options〉Git,在底部我注意到一些设置来选择Sourcetree使用哪个版本的git。Tools > Options > Git version settings
所以我之前在“嵌入式”上有,但是我把它改成了System,到目前为止一切都很好。
虽然这对大多数人来说可能是相当明显的,但我想无论如何我都会提到它:这只适用于从https://git-scm.com/安装git和lfs的情况,git安装程序有一个选项,可以在安装过程中的某个时候安装git-lfs。
编辑:在此之后,问题仍然存在,但后来我想起这个问题只是在我安装了一个新的M.2 NVME驱动器并将我的repo加载到它之后才开始出现的。
所以我猜如果你运行git lfs的驱动器比repo慢,Sourcetree会认为你没有配置git lfs,所以我卸载了Git和LFS,重新安装到我最快的驱动器,M.2 NVME驱动器上,从那以后我就没有遇到过任何问题。
zzwlnbp85#
查看您 checkout 的分支是否包含文件
.gitattributes
,并在其中找到类似<any file pattern> filter=lfs diff=lfs merge=lfs -text
的内容。这会让Sourcetree意识到Git-LFS正在被使用。如果它是新添加的分支,并且还没有在master上,注意只有当存在的分支已经 checkout 时,Sourcetree才会在打开时显示提示。
f3temu5u6#
这个评论帖子里的人都在讨论删除pre-push钩子,但是仅仅这样并不能解决这个问题。
为了将GITLFS正确地添加到钩子