项目越做越大,Git操作却越来越卡?提交要等半天,切换分支像在转圈,这种体验谁都不想碰。其实很多问题不是电脑不行,而是Git配置没跟上节奏。合理调整一些设置,能让日常开发顺畅不少。
启用稀疏检出减少文件加载
有些仓库特别大,但你只关心其中几个目录。比如一个全栈项目里前端只改src/pages,后端根本不用碰。这时候可以用稀疏检出(sparse checkout),只拉需要的文件。
先开启模式:
git config core.sparsecheckout true
然后把要保留的路径写进配置文件:
echo "src/pages/" >> .git/info/sparse-checkout
再执行更新,工作区就只会保留指定目录的内容,速度明显提升。
用浅层克隆跳过历史包袱
新成员加入项目,克隆仓库动不动几十分钟?如果不需要查看太久远的历史记录,完全可以只拉最近几次提交。
克隆时加个参数就行:
git clone --depth 1 https://github.com/user/big-repo.git
这样只下载最新的一次提交数据,体积可能只有原来的十分之一。虽然看不到老版本,但日常开发完全够用。
关闭自动换行检查提升IO效率
Windows用户常遇到的问题是每次提交都提示换行符修改。这其实是Git在后台默默转换CRLF和LF导致的。如果你确定团队统一了编辑器设置,可以直接关掉这个功能。
git config core.autocrlf false
少了这部分处理逻辑,尤其是大文件多的项目,能感觉到响应快了一截。
压缩对象数据库定期瘦身
长期运行的本地仓库会积累大量松散对象,占用空间还拖慢查询。手动触发一次打包压缩,往往能释放几百MB甚至更多。
git gc --aggressive
建议放在下班前跑一下,第二天打开项目明显轻快。也可以设置定时任务每月自动执行。
使用SSH替代HTTPS减少验证次数
频繁推送拉取的话,SSH比HTTPS省事得多。配好密钥之后不再需要每次都输账号密码,连接建立也更快。
生成密钥后添加到Git平台账户,然后把远程地址换成SSH格式:
git remote set-url origin git@github.com:user/repo.git
尤其在自动化脚本或CI环境中,这种改动效果更明显。
避免在大文件目录初始化Git
有人图方便,在整个下载目录或者素材文件夹根目录建Git仓库,结果一提交就卡死。Git天生不适合处理大型二进制文件。