Nnq
V2EX  ›  git

.idea 上传到 git 么?

By Nnq at 2023 年 3 月 14 日 · 11084 次点击

想问下大家用 intellij 的会把这个.idea 在上传到 git repo 时候忽略掉么?

还是为了保证大家有一样的配置,会直接上传呢?

第 1 条附言  ·  2023 年 3 月 14 日
看到大家的留言看来是真的是各种情况都有 :

我的第一直觉是这个文件夹就和之前 eclipse 的配置文件一样,是不需要上传的。 上传了每当其他人修改一些本地 IDE 配置,无意中会直接推动到 remote 的 repo 中,然后别人一个更新,最后直接就莫名其妙的用上了别人的配置信息。

现在有些公司在通过这些文件来配置些 code style 还有一些其他信息。
第 2 条附言  ·  2023 年 3 月 14 日
🙏大家的积极参与,我从评论中抓取了一些比较🈶️代表性的发言,供大家参考

from @Hyduan:

https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems

JetBrains Team 的建议,我选择按根据自动生成的 .idea 内的 gitignore 进行部分上传

from @dcsuibian :
不传
1 、如果你的.gitignore 是 spring-boot 生成或 git clone 下来的项目中的,那么多半.idea 就已经在规则里了,已经有了不少实践
2 、虽然 JetBrains 的程序很流行,但并不应该限制对方使用同样的 IDE (受开源影响)
3 、就算部分可以传,但我也没兴趣研究 IDEA 的配置 xml ,万一不同版本不兼容呢
4 、使用专用的配置文件(比如.prettierrc )和文档来配环境要专业、清晰得多

from @mxT52CRuqR6o5:

微软的仓库
github.com/microsoft/vscode
Google 的仓库
github.com/angular/angular
Facebook 的仓库
github.com/facebook/lexical
都有把 ide 配置文件上传到仓库的 case ,都不专业是吧😅
碰到把 ide 配置文件上传到 git 仓库就要批判别人的专业性,也不知道底是谁不专业,谁没见识

from @Dlin :

idea 里面可能会包含 artifacts 的配置,如果不加入,没有写明文档打情况下,一些开发者可能不清楚怎么运行这个项目,例如只是打包一个 springboot 可以扫描到的 jar 包,这个 jar 包实际上并不需要有一个 springboot 的 lanuch ,只需要个别部署环境没有的依赖,那就需要保留这个到 idea 中,因为你不可能让他再来分析一次需要哪些依赖项,甚至他都不知道这个应该打成一个 jar 包

from @ranleng

根据这个 Article
https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

理论应该有些文件需要被提交到 git 上的,
不知道会有啥坑不

from @securityCoding :
如果有人把.idea 上传到仓库我会质疑他的专业性
87 条回复  •  2023-03-16 20:33:34 +08:00
mobaijun
   1
mobaijun  
   2023 年 3 月 14 日
忽略,每个 idea 都会为项目生成一个.idea 文件,这个文件夹是根据项目自动生成的
handuo
   2
handuo  
   2023 年 3 月 14 日
看个人和公司要求吧,正常来说团队的使用是要排除掉 idea 的
yyfearth
   3
yyfearth  
   2023 年 3 月 14 日
看情况 一般会 ignore
但是里面有些文件不太变化 又并且整个 team 要保留的话
比如 launch 相关的配置
还是可以放到 git 里面的 方便以后使用或者给别人使用
vscode 同理
securityCoding
   4
securityCoding  
   2023 年 3 月 14 日 via Android   ❤️ 31
如果有人把.idea 上传到仓库我会质疑他的专业性
chendy
   5
chendy  
   2023 年 3 月 14 日   ❤️ 1
某些特殊项目可以利用.idea 同步一些项目配置
大多数情况下都是直接 ignore
0o0O0o0O0o
   6
0o0O0o0O0o  
   2023 年 3 月 14 日 via iPhone   ❤️ 7
kingfalse
   7
kingfalse  
   2023 年 3 月 14 日 via Android
大多数情况传了就是等着挨骂
vela
   8
vela  
   2023 年 3 月 14 日
没特殊理由,建议 ignore 。
pengtdyd
   9
pengtdyd  
   2023 年 3 月 14 日
如果有人把.idea 上传到仓库我会质疑他的专业性
xuanbg
   10
xuanbg  
   2023 年 3 月 14 日
排除掉,传上去会挨骂的。
zhlxsh
   11
zhlxsh  
   2023 年 3 月 14 日 via iPhone
如果有人把.idea 上传到仓库我会质疑他的专业性
chotow
   12
chotow  
   2023 年 3 月 14 日 via iPhone   ❤️ 4
从某个版本开始,.idea 下内置了 .gitignore 文件,没被忽略的看起来都是可共享的配置 🤔
garlics
   13
garlics  
   2023 年 3 月 14 日
@chotow 是的,而且 intellij 还弹窗告诉说可以追踪.idea 文件,不过具体我没看,也没详细研究 intellij 这么做的目的,但是 intellij 加了这个功能肯定有他使用的场景。
ranleng
   14
ranleng  
   2023 年 3 月 14 日   ❤️ 1
根据这个 Article
https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

理论应该有些文件需要被提交到 git 上的,
不知道会有啥坑不
Yeen
   15
Yeen  
   2023 年 3 月 14 日   ❤️ 1
1 和项目源码无关,才单独放到.这种文件夹里。
2 耦合本地环境。
3 耦合个人特征。

除非是你强迫其他人吃你的 dogfood 。不然别传。
sxfscool
   16
sxfscool  
   2023 年 3 月 14 日
独立开发可以,team 就算了
iamqida
   17
iamqida  
   2023 年 3 月 14 日
部分文件和环境无关的文件是可以考虑提上去的,但是不如写一个指导书或者单独共享配置方案
Dlin
   18
Dlin  
   2023 年 3 月 14 日   ❤️ 2
idea 里面可能会包含 artifacts 的配置,如果不加入,没有写明文档打情况下,一些开发者可能不清楚怎么运行这个项目,例如只是打包一个 springboot 可以扫描到的 jar 包,这个 jar 包实际上并不需要有一个 springboot 的 lanuch ,只需要个别部署环境没有的依赖,那就需要保留这个到 idea 中,因为你不可能让他再来分析一次需要哪些依赖项,甚至他都不知道这个应该打成一个 jar 包
Dlin
   19
Dlin  
   2023 年 3 月 14 日
所以我认为是按需添加到,不是无脑全部忽略掉。
layxy
   20
layxy  
   2023 年 3 月 14 日
不传,覆盖别人的项目配置有时候会给别人造成困扰,甚至麻烦
cutiechi
   21
cutiechi  
   2023 年 3 月 14 日
按需,里面的一些文件需要
dif
   22
dif  
   2023 年 3 月 14 日
一般不会。。。
EastLord
   23
EastLord  
   2023 年 3 月 14 日
一般不会,但是也有上传的。
参考这个: https://github.com/apache/calcite
angryPHP
   24
angryPHP  
   2023 年 3 月 14 日
不会,我尊重别人的 idea
RainCats
   25
RainCats  
   2023 年 3 月 14 日
传上去就是挨骂,这种 idea 的东西有啥好传的,你要保持什么一致? idea 的编码设置还是什么其他的
hakuya7
   26
hakuya7  
   2023 年 3 月 14 日
那.vscode 也是同理咯?
realpg
   27
realpg  
   2023 年 3 月 14 日
@pengtdyd #9
不用 idea ,但是这个不能一刀切死
按照别的系统的配置文件逻辑,如果 ide 的配置文件是一个目录的多个文件,而不是一个单文件,可能会有一些特殊设置

传的不是下面的全部文件,是一个两个文件,自定义一些特殊的参数,一些特殊的语法糖识别,比如让编译器怎么处理,比如语法检查跳过一些东西之类的配置,

这场景一般是传一两个非主文件,能兼容每个人的 ide 配置,而不是传全部的 ide 文件
LieNoWell
   28
LieNoWell  
   2023 年 3 月 14 日
同问: .fxckme 目录需要上传到 git 么,因为我用 FxckMeIDE 而不是全家桶。
maotao456
   29
maotao456  
   2023 年 3 月 14 日
如果有人把.idea 上传到仓库我会质疑他的专业性
xFrye
   30
xFrye  
   2023 年 3 月 14 日
本地的配置为什么要上传到仓库去?是很享受解决.idea 文件夹的里的配置冲突么
arischow
   31
arischow  
   2023 年 3 月 14 日 via iPhone
.idea 会存 run configurations ,我觉得是适合分享的,虽然我没有这么做。
iseki
   32
iseki  
   2023 年 3 月 14 日 via Android   ❤️ 1
保留 codeStyle 文件,其他目前没看到需要上传的,ci 检查格式化留着这个有用
mxT52CRuqR6o5
   33
mxT52CRuqR6o5  
   2023 年 3 月 14 日 via Android
https://github.com/microsoft/vscode
Vscode 仓库就把.vscode 文件夹传上去了,😅传了就不专业是吧
youmilk
   34
youmilk  
   2023 年 3 月 14 日
不传,默认 ignore 。
lopda
   35
lopda  
   2023 年 3 月 14 日
看到质疑😂你确定组内协作完全用不到吗。
HangoX
   36
HangoX  
   2023 年 3 月 14 日   ❤️ 1
这个不是绝对的,看文件内容,我一般是 filter 掉整个.idea 文件夹,部分文件上传,比如 word 还有配置信息这些,主要是看文件是否是每台机器使用都会被修改
sola97
   37
sola97  
   2023 年 3 月 14 日
公司有些项目传了,每次打开都要手动删一遍.iml 文件和.idea 文件夹
mxT52CRuqR6o5
   38
mxT52CRuqR6o5  
   2023 年 3 月 14 日 via Android   ❤️ 12
微软的仓库
github.com/microsoft/vscode
Google 的仓库
github.com/angular/angular
Facebook 的仓库
github.com/facebook/lexical
都有把 ide 配置文件上传到仓库的 case ,都不专业是吧😅
碰到把 ide 配置文件上传到 git 仓库就要批判别人的专业性,也不知道底是谁不专业,谁没见识
ZeroDu
   39
ZeroDu  
   2023 年 3 月 14 日   ❤️ 1
楼上有些,讨论的是.idea 就不要提.vscode 了;

一般来说不上传,每个人配置不一样。
lopda
   40
lopda  
   2023 年 3 月 14 日
@HangoX 赞同!👍
mxT52CRuqR6o5
   41
mxT52CRuqR6o5  
   2023 年 3 月 14 日 via Android   ❤️ 2
@ZeroDu
Vscode 的 ide 配置传得,jetbrains 的 ide 配置传不得
啊 q 正传是吧:和尚摸得,我摸不得
clrss
   42
clrss  
   2023 年 3 月 14 日
我偷懒全部排除了, 但看起来有些是可以包括进 repo 的.

上面的复读机别太绝对.
RealYourDad
   43
RealYourDad  
   2023 年 3 月 14 日
个人项目,我觉得上传上去没啥问题,方便换台电脑也能用之前的配置。但是如果是团队项目,绝对不要传自己的配置,你的配置和别人的配置可能会有冲突,这不合适。
kongkongyzt
   44
kongkongyzt  
   2023 年 3 月 14 日
问题是组里有的人用的 jetbrian ,但是有的人用的是 vscode ,甚至有的人用的是一些不知道哪里来的第三方 IDE
mxT52CRuqR6o5
   45
mxT52CRuqR6o5  
   2023 年 3 月 14 日   ❤️ 1
@kongkongyzt
.idea 又不会影响 vscode 和不知道哪里来的第三方 IDE ,只要 jetbrian 用户大于等于 2 个,把配置文件传上去就是有价值的
@zaunist
团队协作上传 ide 配置才更能体现价值啊,比如 codestyle 配置文件,在每个人的电脑上理应是一模一样的,ide 的 codestyle 配置文件就可以上传到 git ,更有利于协作
gowk
   46
gowk  
   2023 年 3 月 14 日
同样 .vscode 文件夹传不传呢?
unco020511
   47
unco020511  
   2023 年 3 月 14 日
当然要忽略啊
lyxeno
   48
lyxeno  
   2023 年 3 月 14 日   ❤️ 1
官方说里面部分文件为了团队协作可以传,不过我感觉没必要传上去。于是全部忽略了
hsfzxjy
   49
hsfzxjy  
   2023 年 3 月 14 日 via Android
有些项目的 prettier 和 intellisense 配置比较难,传部分.vscode 或.idea 可以降低上手的难度
iseki
   50
iseki  
   2023 年 3 月 14 日   ❤️ 1
/.idea/codeStyles 最好是传的
dcsuibian
   51
dcsuibian  
   2023 年 3 月 14 日
不传
1 、如果你的.gitignore 是 spring-boot 生成或 git clone 下来的项目中的,那么多半.idea 就已经在规则里了,已经有了不少实践
2 、虽然 JetBrains 的程序很流行,但并不应该限制对方使用同样的 IDE (受开源影响)
3 、就算部分可以传,但我也没兴趣研究 IDEA 的配置 xml ,万一不同版本不兼容呢
4 、使用专用的配置文件(比如.prettierrc )和文档来配环境要专业、清晰得多
IvanLi127
   52
IvanLi127  
   2023 年 3 月 14 日 via Android
看别人愿不愿意和你共享配置咯,我一般就看项目是不是基本上我写,是的话就传上去了,避免换个环境就得配一次。
而且 ide 配置还是很有价值,最好能团队共享同一个配置。对了,这可不是什么“本地”的环境配置,这是项目为这个 IDE 做的配置!
WispZhan
   53
WispZhan  
   2023 年 3 月 14 日   ❤️ 2
可以传部分,但是需要排除本地化配置。
所谓本地化配置就是,带有本地化路径的配置文件,这类文件传给别人就是害人。
但是如果.idea 里基于 project 的约束性配置,是可以共享的。比如 code style, format, template, copyright 等等

同理.vscode 目录也是

楼上的二极管们真多
viggoc
   54
viggoc  
   2023 年 3 月 14 日
是有一些项目会传 .idea 的,比如 [elasticsearch]( https://github.com/elastic/elasticsearch)
500
   55
500  
   2023 年 3 月 14 日
@securityCoding 我第一反应也是这样🤣
sprite82
   56
sprite82  
   2023 年 3 月 14 日
不传,所谓的代码风格,格式化等信息,全用 idea 默认的
nightwitch
   57
nightwitch  
   2023 年 3 月 14 日 via Android
有一些 config 可以方便刚入职的同事拖下来一键跑起来,但是这些配置可能会不符合老同事的习惯。
www5070504
   58
www5070504  
   2023 年 3 月 14 日
被覆盖配置我想喷
QingXuJiaZhi
   59
QingXuJiaZhi  
   2023 年 3 月 14 日
其实很简单:

1. 个人项目是否同步 .idea, 自己决定( JetBrains 建议同步)
2. 团队项目是否同步 .idea, 看一下之前有没有,或者在团队内问一句就可以了。

上面有些人一口咬定不能同步 .idea 并且带着鄙视的语气,实在没必要。
ianEros
   60
ianEros  
   2023 年 3 月 14 日
我们有个项目不知道被谁把.idea 传上去了。。每次更新或者回滚代码 maven 还有一些配置都会失效
clf
   61
clf  
   2023 年 3 月 14 日
上传上去大概率是因为 IDEA 创建项目时生成的.gitignore 文件里只排除了一部分的配置文件?

其实同步没啥问题,别全同步,全同步会有个人配置导致其他人使用出现问题。
koebehshian
   62
koebehshian  
   2023 年 3 月 14 日
其实很简单,自动生成的代码不要上传就行,手写的就可以
xiangyuecn
   63
xiangyuecn  
   2023 年 3 月 14 日
见过提交 node_modules 的
levon
   64
levon  
   2023 年 3 月 14 日
要不要上传先搞清楚.idea 是干什么的比较靠谱
Hyduan
   65
Hyduan  
   2023 年 3 月 14 日
https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems

JetBrains Team 的建议,我选择按根据自动生成的 .idea 内的 gitignore 进行部分上传
wuweijia
   66
wuweijia  
   2023 年 3 月 14 日
wuweijia
   67
wuweijia  
   2023 年 3 月 14 日
Wanex
   68
Wanex  
   2023 年 3 月 14 日
为了团队协作可以传,比如是开源项目,你想让别人贡献代码的时候统一 ide 的配置,比如说 vscode 的一些配置,就可以把 .vscode 传上去,这样做可以更好地确保项目中代码风格的一致性。
AliMaster
   69
AliMaster  
   2023 年 3 月 14 日
owner 的话会上传 codeStyle ,编码之类的,非 owner 不会
lisxour
   70
lisxour  
   2023 年 3 月 14 日
@lzgshsj 他们都是瞎说的,得看实际情况,可能会对个别文件开放同步,比如我大部分都是
.vscode/*
!.vscode/launch.json
!.vscode/tasks.json

也会有整个.vscode 文件夹忽略的项目
zed1018
   71
zed1018  
   2023 年 3 月 14 日
别的种类的项目我不知道,spring-boot 项目我想不到.idea 上传的理由,别说什么 JDK ,那玩意儿你在一个路劲他在一个路径,甚至你们可能一个正斜杠一个反斜杠。剩下比如 gradle ,直接改 project default 配好,新项目 import 之前设置一下 project sdk ,build 完基本就有一个能跑的 run configuration 了。
zpf124
   72
zpf124  
   2023 年 3 月 14 日
需要传的各位是不是所以项目里最好全都兼容一下啊,吧 .eclipose 、.idea 、.vscode 都传上去啊,要不你这格式化参数对于有些特立独行或者不想用盗版的人不友好啊。

给各位要传 代码约束规范的推荐一个东西 .editorconfig 各个 IDE 都支持或者有插件支持
doyel
   73
doyel  
   2023 年 3 月 14 日
传不传,传什么完全是看项目实际情况的。。。这有什么好吵的啊,小作坊小团队的传了大家都不要干活了。
公司有标准开发平台、环境的,按项目需求全 Thin Client 标准化开发环境的,当然就可以传了
glfpes
   74
glfpes  
   2023 年 3 月 14 日
哈哈,刚刚把应届生上传的.idea/删掉
mazai
   75
mazai  
   2023 年 3 月 14 日   ❤️ 1
.idea 是 idea 的配置文件,每个人的 idea 配置不一样。有的公司会统一一些配置,但不是所有配置都上传。
qwerthhusn
   76
qwerthhusn  
   2023 年 3 月 14 日
只要别传 target/就行
Nnq
   77
Nnq  
OP
   2023 年 3 月 14 日
@qwerthhusn 你还别说 我还真见过传 jar 的,更搞笑的是人家打包要手动把 jar 考到一个特定的地点然后打包,不知道用 profil
statumer
   78
statumer  
   2023 年 3 月 14 日   ❤️ 1
@mxT52CRuqR6o5 #45 不要混淆视听,这两者有很大区别。`.vscode/settings.json`, `.vscode/launch.json` 都是开发者手写的,所以开发者很清楚这里面的内容是否适合作为开源仓库的一部分,这些配置文件的内容和格式是清楚的,可以被作为开源仓库的一部分由社区维护。但是几乎所有人的 `.idea` 都是 IDE 工具自动生成的,开发者并不清楚里面的内容是否适宜被公开,是否适宜作为开源仓库的一部分被维护,是否会为其他社区协作者带来困扰。
mxT52CRuqR6o5
   79
mxT52CRuqR6o5  
   2023 年 3 月 14 日
@statumer jetbrain 官方都指导了,哪些可以传哪些不能传,我是说不出「如果有人把.idea 上传到仓库我会质疑他的专业性」这种话来
wxlwsy
   80
wxlwsy  
   2023 年 3 月 14 日
用 maven,只传代码+pom,其他一律忽略
fan123199
   81
fan123199  
   2023 年 3 月 14 日
团队全部用 idea 就按需要传。其他情况就忽略
zhuweiyou
   82
zhuweiyou  
   2023 年 3 月 14 日
一律 ignore, 如果是处于 code style 考虑, 更不应该使用 .idea / .vscode 来配置, 这样就绑定编辑器了, 我非得用这个编辑器才能参与项目?
zhaogaz
   83
zhaogaz  
   2023 年 3 月 15 日
怎么说呢。。

如果不清楚有什么效果,就别上传。如果弄清楚了随便搞。。。

没啥绝对的。。。很简单。
petercui
   84
petercui  
   2023 年 3 月 15 日
@securityCoding 不传我才会质疑他的专业性,有些配置就是要团队共享的。
petercui
   85
petercui  
   2023 年 3 月 15 日   ❤️ 2
@pengtdyd
@zhlxsh
@maotao456
@paulluis2dev

不传我才会质疑他的专业性,.idea 目录下有哪些文件,都是干什么的都不清楚。有些配置就是要团队共享的。
mxT52CRuqR6o5
   86
mxT52CRuqR6o5  
   2023 年 3 月 15 日 via Android
@zhuweiyou
如果一个项目没有.vscode 没有.idea 你能不能用 vscode 参与项目?现在多了一个.idea 你就不能参与项目了?
zhuweiyou
   87
zhuweiyou  
   2023 年 3 月 16 日
@mxT52CRuqR6o5 不能用那个 code style 了.
git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
© 2026 V2EX · 249ms · 3.9.8.5