如何使用git lfs和“普通”git

时间:2015-10-31 18:50:13

标签: git git-lfs

好吧,它可能已经有一段时间了,因为它(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?

2 个答案:

答案 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明确取消跟踪。