git clone与git pull的时候不拉大文件

很多时候,人们需要在git仓库里存储一些巨大的动辄数百MB甚至数GB的二进制文件以帮助编译或部署用。git 通过 lfs 支持大文件存储。
而这些大文件呢,往往也经常被更新。这就带来一个问题 - 开发人员并不需要这些巨大的二进制文件,而只是需要一些源代码文件即可。频繁地更新大文件,会浪费许多pull的时间。
另外,开发人员有的时候只想在Windows机器上用IDE开发代码,而开发机上编译部署。开发机所在的网络下载大文件很快,可Windows机器所在网络有时走的是VPN,就很慢甚至会经常出错。
这个时候,我们就会想,能不能不要去pull或clone这些大文件呢?
办法是有的。

方法一

GIT_LFS_SKIP_SMUDGE=1 git clone <repository-addr>

使用这种方法,以后即使 git pull, 也不会把大文件拉下来了。
如果以后想把大文件再拉下来的话,可以用 git lfs pull

如果是对于一个曾经正常clone下来的workspace,也可以用类似的方法去pull,则不会将大文件pull下来;而且以后再pull的时候也不会。

GIT_LFS_SKIP_SMUDGE=1 git pull

方法二

git config --global filter.lfs.smudge "git-lfs smudge --skip"
git clone <repository-addr>

这样会在 ~/.gitconfig 文件中增加2行:

[filter "lfs"]
	smudge = git-lfs smudge --skip

如果将来想再拉大文件,可以运行:

git config --global filter.lfs.smudge "git-lfs smudge -- %f"

不过,根据笔者亲身试验,只有方法一生效了; 方法二虽然改变了 .gitconfig 文件,但在git clone的时候仍然去拉大文件了。
方法二未能生效的原因暂未找到。读者可自己一试。

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值