解决在IDEA里Git特别慢的问题

这篇博客讨论了在IDEA中使用Git时遇到的响应慢问题,以及用户和官方支持人员的互动。用户发现将IDEA安装目录下的runnerw.exe(64位系统为runnerw64.exe)重命名为runnerw.exe.bak和runnerw64.exe.bak后,Git操作速度显著提升。官方推测可能是由于杀毒软件或防火墙的影响导致的延迟。此解决方案被证实有效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一直以来在idea里使用git进行更新、提交等操作的时候,都特别慢,慢的出奇。

搜到官网论坛的相关讨论:

老沙骑马马:

我的IDEA全家桶,在使用ide的git相关功能时非常的慢,例如Annotation with git blame,甚至是使用Commit侧边栏查看目前的更改,都会update一段时间

Lejia Chen:

您好,可以麻烦你在复现了这个卡顿的问题后,点击 IDE 主菜单上的 Help | Collect Logs and Diagnostic Data 获取日志,上传到 JetBrains Uploads 把 upload id 告诉我,让我看一下日志可以吗?

另外你的电脑上有安装什么额外的杀毒软件或者防火墙吗?如果有的话,麻烦你把这些先临时关闭,看看再进行 Git 操作速度会不会正常。

老沙骑马马:

已经解决了!

把idea安装目录下的runnerw.exe(64位系统runnerw64.exe)或者改名就可以了,官方可以排查一下是啥原因,可能和我电脑的设置有关。

Lejia Chen:

runnerw(64).exe 是一个用于命令行包装的可执行文件。用于将传入的命令行(比如说 Git)运行在子进程里。我们遇到过一些类似的例子,如果你把这两个应用改名了有用的话,有可能是你的本地安装的某个杀毒软件或者防火墙,在 IDE 通过这个程序新建子进程的时候,这个软件需要很多的时间才能放行这个创建子进程的操作。你可以试试把这些软件临时关闭看看有没有效果,或者在这些软件里看看有没有对应的这类规则,然后把它去掉。

解决方法:

 

将%IntelliJ IDEA %\bin目录下的runnerw.exe和runnerw64.exe改成runnerw.exe.bak和runnerw64.exe.bak,重启Idea,亲测有效,快的一批。

补充:2023版只有runnerw64.exe

### 提高 IntelliJ IDEAGit 提交代码的速度 #### 优化本地仓库配置 为了提升提交效率,建议调整本地Git仓库的配置参数。通过修改全局或项目的.gitconfig文件来增加缓存区大小以及启用多线程压缩算法能够有效减少打包时间。 ```bash git config --global pack.windowMemory "1g" git config --global pack.packSizeLimit "2g" git config --global core.compression -1 ``` 这些设置增大了内存分配给打包过程并允许最大化的压缩级别[^1]。 #### 减少不必要的跟踪文件数量 确保`.gitignore`文件已经正确设置了排除规则,防止不必要文件进入版本控制系统。对于IntelliJ项目来说,默认应该忽略诸如编译输出、临时构建产物和个人工作空间偏好等无关紧要的内容。这不仅加快了每次更改检测的速度,也减少了实际推送至远程服务器的数据量。 按照描述,在IDEA中可以通过特定路径设定忽略模式: - **Windows**: `File -> Settings -> Editor -> File Types` - **MacOS**: `Preferences... -> Editor -> File Types` 在此处向“Ignore files and folders”框内添加如下的条目以屏蔽常见的非源码资源: ``` *.iml;.idea;target; ``` 这样做有助于保持仓库整洁的同时提高了性能表现[^2]. #### 使用 Stash 功能暂存未完成的工作 当存在大量尚未准备好提交但又不想丢失当前进度的情况下,可以利用Stash特性暂时保存所有改动而不影响默认变更列表的状态。这样可以在不影响其他工作的前提下专注于准备好的部分进行快速提交。 执行stash命令前记得先同步最新的上游分支更新以免造成潜在冲突: ```bash # 更新最新代码 git pull origin main # 将现有修改放入栈顶 git stash push -m "WIP: Temporary save before commit" # 查看已存储的工作状态 git stash list ``` 之后可以根据实际情况选择恢复(`pop`)或是应用(`apply`)某个具体的stash记录继续之前的操作. #### 合理管理 Change Lists (变更集) 合理划分不同的Change List可以帮助开发者更加精准地控制哪些文件参与此次提交流程。仅保留必要的待提交项于Default Changelist之下可显著降低处理开销。此外,还可以创建自定义Changelist用于分类整理不同性质的变化点以便更好地管理和审查。 在IntelliJ IDEA底部面板切换到"Version Control"视图->点击左侧边栏上的“Local Changes”,在这右键单击任意文件可以选择将其移动到新的或者现有的changelists当中去. ---
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wsdhla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值