python 在Git中使用PyCharm时,我应该忽略.idea文件夹吗?

3yhwsihp  于 2023-03-21  发布在  Python
关注(0)|答案(6)|浏览(221)

我在PyCharm中阅读了Git集成,并从PyCharm创建了一个Git存储库。我在PyCharm中这样做是因为我希望PyCharm知道是否应该忽略.idea文件夹,如果是这样,它会自动创建一个.gitignore文件,其中包含.idea/行。
但是它没有,所以我认为我不应该忽略.idea文件夹。然而,我做了一个快速搜索,发现某人的示例.gitignore文件,here,它显然忽略了.idea文件夹。
那么,我的问题是,.idea文件夹是否应该被忽略?

i2loujxw

i2loujxw2#

.idea目录中的所有设置文件都应该置于版本控制之下,除了workspace.xml,它存储了您的本地首选项。workspace.xml文件应该是marked as ignored by VCS
-PyCharm 2017.3项目文档
为了进一步解释,workspace.xml包含用户特定的工作区首选项,其中包括environment variables、最近访问的文件和光标位置。

rjjhvcjd

rjjhvcjd3#

虽然共享项目设置并不是一个坏主意,但有几个例外和潜在的问题你应该知道。

  • workspace.xml文件包含各种特定于用户的设置,例如环境变量、光标位置和Python SDK位置。
  • 环境变量可能包括私有数据,如用户名和密码
  • dictionaries文件夹包含自定义拼写,如果两个开发人员同名,则可能导致冲突。
  • .idea文件夹是PyCharm特定的,这意味着使用不同IDE的开发人员可能会导致项目不同步。
  • IntelliJ's own documentation包含几个针对不应共享的特定文件的警告。

如果您决定共享.ideaIntelliJ's official documentation给出以下建议
[The.idea]格式默认情况下被所有最新的IDE版本使用。以下是您需要分享的内容:

  • 项目根目录.idea目录下的所有文件,workspace.xmltasks.xml**文件除外,它们存储用户特定的设置
  • 可位于不同模块目录中的所有**.iml**模块文件(适用于IntelliJ IDEA)
    请注意以下内容:
  • 生成签名构建的Android工件(将包含密钥库密码)
  • 在IDEA 13及更早版本中,dataSources.idsdatasources.xml可以包含数据库密码,IDEA 14解决了这个问题。

您可以考虑不分享以下内容:

*.iml文件,用于基于GradleMaven的项目,因为这些文件将在导入时生成
*gradle.xml文件,see this discussion

  • userdictionaries文件夹(避免其他开发人员同名时发生冲突)
    *.idea/libraries下的XML文件,如果它们是从Gradle或Maven项目生成的

来源:JetBrains - How to manage projects under Version Control Systems

i1icjdpr

i1icjdpr4#

我发现一些问题时,包括整个.idea/目录到项目。
如果推送到包含.idea/目录的git repo,并使用pycharm在other machine克隆该项目,pycharm无法正确识别该项目

delete.idea/目录后,pycharm可以很好的识别项目。

wf82jlnq

wf82jlnq5#

.idea/文件夹只是JetBrain存储数据的方式。它在IntelliJ和PyCharm中,所以,是的,它可以被忽略。

sy5wg1nm

sy5wg1nm6#

对于最新的干净启动,不要在版本控制中存储.idea
我做这个已经很多年了,当项目变得越来越复杂时,为一个新的IDE/机器设置是一件麻烦的事情。
根据上面的建议,我将从之前的.idea降到.gitignore,只是.idea/workspace.xml
虽然它没有显示在PyCharm的资源管理器中,但.idea文件夹已预先填充了它自己的.gitignore,我可以指望它与IDE本身沿着维护。我不需要显式地.gitignore任何路径,因为它会自己处理。
以下是它的内容:

# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

如果我有任何敏感的东西在那里,我仍然会仔细检查我的git提交,但我们已经这样做了,对吗?

相关问题