好吧,它可能已经有一段时间了,因为它(git lfs)已经发布,但我最近才开始了解它。事实上,我对git本身很陌生。
基本上,我将我的普通(非lfs)存储库克隆到本地驱动器。现在我想向它添加一个大于100MB的文件并将更改提交到存储库。我使用了以下命令:
git clone ....
然后我复制那个大小> 100MB的文件,我要添加到存储库。 假设该文件的名称是“filename”。
git lfs init
git lfs track "filename"
git add "filename"
git commit -m "commit message"
git push -u origin
此操作失败,出现文件大小错误消息,指出只允许大小为100MB的文件。
那么在这种情况下如何使用git lfs?
答案 0 :(得分:4)
这里我将举例说明我的文件夹名称为data
,其中存储了大文件。
<强>配置强>
为了将此文件夹添加到存储库,您必须配置.gitattributes
文件。在我的例子中,我将做
$ cat .gitattributes
$ data/* filter-lfs
跟踪文件使用情况:
$ git lfs track
Listing tracked paths
data/* (<repo name>/.gitattributes)
然后你很高兴......
<强>提交强>
使用native git命令添加和提交文件。
$ git add data/
$ git commit -m "lf"
您将观察到文件索引只需1-2秒。 列出回购使用中的所有lfs:
$ git lfs ls-files
在您可以推送到遥控器的所有内容之后:
$ git push -u origin master
根据您的网速,这需要一段时间上传。
您可以参考以下内容获取更多信息:
答案 1 :(得分:0)
您可以检查标准git是否已跟踪该文件。 在那种情况下,我怀疑标准git仍会跟踪它,而不是git lfs,从而施加了100MB的限制。
如果这适用于您的情况,请尝试将现有文件 migrate 放入新的存储库中
:Model.delete_all
并将转换后的存储库推送到新存储库:
git lfs migrate import --include="your.file"
PS:git push
也会发生类似现象:使用.gitignore
忽略文件后验不会取消跟踪。在这种情况下,您必须使用.gitignore
明确取消跟踪。