检查网络连接和远程仓库位置
有时候提交代码慢,其实卡在推送(push)环节,而不是本地提交。比如你在深圳,但远程仓库放在美国的服务器上,每次 push 都得跨洋传输,延迟自然高。可以尝试切换到国内镜像仓库,比如阿里云、Gitee 或者腾讯云 Code 的镜像,提升访问速度。
如果公司内部有 GitLab 自建服务,确认自己连的是内网地址,而不是通过公网绕一圈再回来。
减少单次提交的文件数量
一次提交几千个小文件,Git 得一个个计算哈希,速度肯定上不去。就像超市结账,你拿一购物车东西,收银员扫码就得十分钟。建议把大批次变更拆成几次小提交,不仅速度快,出问题也更容易回滚。
可以用 git status 看看当前有哪些文件要提交,不必要的临时文件或日志先排除。
清理工作区的大文件和历史记录
项目里混进了几个几百MB的日志文件或压缩包?Git 会把这些内容纳入索引,导致每次操作都变慢。用 git rm --cached 把不该提交的文件从缓存中移除,并加到 .gitignore 里。
如果历史提交中已经有大文件,考虑用 git filter-branch 或 git-filter-repo 工具重写历史,清除它们。
关闭不必要的文件监控
有些编辑器或 IDE(比如 VSCode、WebStorm)会实时扫描整个项目文件变化,加上 Git 自身的文件状态检查,双重扫描会让系统卡顿。尤其是 Windows 用户,磁盘 I/O 跟不上,感觉更明显。
可以尝试关闭编辑器的“自动保存”或“文件监听”功能,或者把项目移到 SSD 上。
使用 git config 优化性能
Git 本身有一些配置项能提升效率。比如禁用文件权限检查(尤其在 Linux/macOS 和 Windows 之间协作时):
git config core.fileMode false如果不需要换行符自动转换,也可以关掉:
git config core.autocrlf false对于大型仓库,启用稀疏检出(sparse checkout)只拉取需要的目录,也能加快操作速度:
git config core.sparsecheckout true
echo "src/app/" >> .git/info/sparse-checkout
git read-tree -m -u HEAD考虑使用 shallow clone
如果你只关心最新的代码,不需要完整历史,可以用浅克隆方式拉取:
git clone --depth 1 https://example.com/repo.git这样不会下载完整的提交历史,克隆和提交前的准备动作都会快很多。适合 CI/CD 环境或临时调试。
排查杀毒软件或同步工具干扰
Windows 上某些杀毒软件或同步工具(比如 OneDrive、360、腾讯电脑管家)会实时扫描每个文件变动。你一提交,它们就开始忙,拖慢整体速度。可以把项目目录加入排除列表,避免被监控。
macOS 用户注意 iCloud 同步是否覆盖了项目文件夹,也会造成类似问题。