V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
Nnq
V2EX  ›  git

.idea 上传到 git 么?

  •  
  •   Nnq · 355 天前 · 8433 次点击
    这是一个创建于 355 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    第 1 条附言  ·  355 天前
    看到大家的留言看来是真的是各种情况都有 :

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

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

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

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

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

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

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

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

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

    同理.vscode 目录也是

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

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

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

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

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

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

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

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

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

    不传我才会质疑他的专业性,.idea 目录下有哪些文件,都是干什么的都不清楚。有些配置就是要团队共享的。
    mxT52CRuqR6o5
        86
    mxT52CRuqR6o5  
       354 天前 via Android
    @zhuweiyou
    如果一个项目没有.vscode 没有.idea 你能不能用 vscode 参与项目?现在多了一个.idea 你就不能参与项目了?
    zhuweiyou
        87
    zhuweiyou  
       353 天前
    @mxT52CRuqR6o5 不能用那个 code style 了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   837 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.