对Git仓库里的.idea进行研究------引用
1.什么是.idea文件夹
因为IntelliJ IDEA是JetBrains最早推出的IDE(JetBrains一开始叫IntelliJ),因此使用IDEA作为配置文件夹的名称。按照这个SO问题里最高票答案的猜测,或许IntelliJ IDEA这个名字的含义是这样组成的:
Intelli ===> Intelligent
J ===> Java
Idea ===>IDE that is Advanced or Idea just means idea( I have a good idea ...like this ) ...
2.是否应该把.idea提交进Git仓库
如果你想让其他使用相同IDE的用户可以更方便或规范的对项目进行开发,那么就把它提交到Git仓库中。比如,你可以设置文件模板(.idea/fileTemplates),定义代码风格(.idea/codeStyleSettings.xml),定义检查器(.idea/inspectionProfiles/),这样其他开发成员可以很方便的上手项目,这会比写在“贡献指南”约束性强一些。
如果你觉得Git仓库不应该包含和项目本身无关的文件,那么也可以不将它提交到Git仓库中。
3.正确的提交方法
当然,将.idea目录整个提交到Git仓库的行为并不可取。因为.idea目录下的文件中有包含隐私的内容(比如你的文件操作变动、用户词典、系统环境变量、数据库密码等等),或是临时生成的文件,这些文件对项目其他的参与者没有用处,而且会泄露你的隐私或是影响正常开发。
如果你选择将.idea目录提交仅Git仓库,那么需要稍微多付出一些工作。
按照JetBrains官方的建议,在使用VCS时提交.idea文件夹应该遵循下面的原则:
1. 分享下面的文件:
除了workspace.xml、usage.statistics.xml和tasks.xml以外.idea目录下的所有文件 所有可以被在不同模块目录下定位到的.iml模块文件(适用于IntelliJ IDEA)
2. 谨慎分享下面的文件:
Android artifacts that produce a signed build,因为它们包含keystore密码(前半句不理解,暂时保留原文)
在IntelliJ IDEA 13 和之前的版本中的dataSources.ids和datasources.xml文件,它们包含数据库密码
3. 避免分享下面的文件:
对于使用Gradle或Maven的项目,避免分享.iml和.idea/modules.xml文件,因为它们会在导入时生成gradle.xml文件
用户字典(dictionaries文件夹)
.idea/libraries目录下的XML文件,因为它们会从Gradle或Maven项目中生成
推荐提交
.idea/vcs.xml
.idea/fileTemplates/
.idea/inspectionProfiles/
.idea/scopes/
.idea/codeStyleSettings.xml
.idea/encodings.xml
.idea/copyright/
.idea/compiler.xml
总结
如果你不想在Git仓库中提交IDE相关的配置文件,那么你可以忽略.idea文件夹;相反,你也可以有选择的把.idea目录下的文件提交进Git仓库。也就是说,项目Git仓库中是否包含.idea文件夹与程序员的开发水平并没有直接关系。我感觉不提交还是对的。
对Git仓库里的.idea进行研究------引用的更多相关文章
- 将远程git仓库里的指定分支拉取到本地(本地不存在的分支
将远程git仓库里的指定分支拉取到本地(本地不存在的分支) https://www.cnblogs.com/hamsterPP/p/6810831.html
- [译]如何撤销git仓库里的所有修改?
原文来源:https://stackoverflow.com/questions/29007821/git-checkout-all-the-files 问: 如何撤销我在我git仓库所做的所有修改? ...
- 如何强制文件上传git仓库里
1.首先在本地创建一个文件夹里写入一个txt文件 2.然后复制你仓库的地址 3.平时正常操作都是这样上传不上 4.没关系我们使用强制上传 代码是 git push -f “你的仓库地址” mast ...
- (转)如何将本地git仓库上传到GitHub中托管+实践心得
Git——新手入门与上传项目到远程仓库GitHub(转) - Chen_s - 博客园http://www.cnblogs.com/Chenshuai7/p/5486278.html 注意的问题: 1 ...
- Git学习记录--git仓库
Git是一款强大的版本控制工具,与svn相比git的分布式提交,本地仓库等在使用时确实比较方便.当然两者之间各有优劣,我在这里不多做比较.由于之前少有接触git,只是零星大致地了解一点,所以找时间系统 ...
- 添加现有项目到git仓库
情景: 做了一个项目,需要放到git仓库里 为什么做这个记录? 我们一般的操作是先有仓库, 然后 git clone 到一个空文件夹. 然后再这个空文件夹里加项目文件. 再git push ...
- Git 仓库拆分
方案对比 subtree 使用命令 git subtree split -P dirPath -b branchName 将目标文件夹的代码都保存到指定分支.试了下,该方案虽然保留了 commit,但 ...
- GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?
问题背景: 最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目 因为之前规划的原因,原来的四个项目是分两个解决方案来管理的 ...
- 稀疏检出-使用git检索出仓库里的某一个目录文件,而不是整个仓库的所有文件
具体工作意义是从某一个Git仓库 克隆时,只克隆检测出这个仓库里的某些文件夹内容,而不是跟平常那样把整个仓库的内容都克隆下来 从1.7.0版本开始git提供稀疏检出的功能.所谓稀疏检出就是本地版本库检 ...
随机推荐
- 定位网页元素、透明度、z-index、包裹性和破坏性
一.定位 position属性————规定元素的定位类型,即元素脱离文档流的布局,在页面的任意位置显示 也可以参见以前的总结 <—— 戳 static:默认值,没有定位 relative:相对定 ...
- 【OpenCV开发】OpenCV:使用VideoCapture类进行视频读取和显示
原文来自:http://blog.csdn.net/thefutureisour/article/details/7530344 -------------以下为原文---------------这次 ...
- lua基础学习(四)
一,lua字符串 单引号间的一串字符. 双引号间的一串字符. [[和]]间的一串字符. 1.几个常用的转义字符 \b 退格 \f 换页 \n 换行 \r 回车 \t 跳到下一个tab位置 \0 ...
- numpy将数组保存为文件
保存单个数组 np.save和np.load是读写磁盘数组数据的两个主要函数.默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的: 如果文件路径末尾没有扩展名.npy,则该扩展 ...
- Spring Boot解决无法访问图片的问题
找了很多Spring Boot项目访问图片的解决方式,发现都是配置的,有时配置了也没有用.然后自己研究了一种简单操作的方法. 1,在Spring Boot的static目录下创建一个新目录img(或者 ...
- selenium之京东商品爬虫
#今日目标 **selenium之京东商品爬虫** 自动打开京东首页,并输入你要搜索的东西,进入界面进行爬取信息 ``` from selenium import webdriver import t ...
- C++ bool、三目运算符、引用
bool变量: C++相对于C语言加入了bool变量,其值为true(1) 和 false(0).true表示不为零的数 false表示为零的数,占用一个字节的空间. 代码: /* 编译环境 gc ...
- .net 分布式锁
原文 : 浅解.Net分布式锁的实现 序言 我晚上有在公司多呆会儿的习惯,所以很多晚上我都是最后一个离开公司的.当然也有一些同事,跟我一样喜欢在公司多搞会儿.这篇文章就要从,去年年末一个多搞会的晚 ...
- 【c#】ADO操作Access的mdb数据库只能读不能修改的解决方法
在使用ACCESS数据库时连接字符串如 string strcon=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Access操作\简易 ...
- web部署命令简单记录
非 root 用户设置环境变量:在< .bash_profile >中设置 后台运行:nohup dosomething >> log.out & nginx 启动ng ...