ChatGPT解决这个技术问题 Extra ChatGPT

将 PyCharm 与 Git 一起使用时,我应该忽略 .idea 文件夹吗?

我阅读了 PyCharm 中的 Git 集成,并从 PyCharm 创建了一个 Git 存储库。我在 PyCharm 中这样做是因为我希望 PyCharm 知道是否应该忽略 .idea 文件夹,如果是这种情况,它会自动创建一个 .gitignore 文件,其中包含行 .idea/

但它没有,所以我认为我不应该忽略 .idea 文件夹。但是,我快速搜索并找到了某人的示例 .gitignore 文件 here,它显然忽略了 .idea 文件夹。

所以,我的问题是,是否应该忽略 .idea 文件夹?

因为总的来说你可以在pycharm中打开一个文件夹作为一个项目我会说你当然不需要它在修订控制下......这说它也不会伤害(即把它放在git中没有负面影响,除了可能会向世界揭示您的一些文件夹结构)
注意: IntelliJ's documentation 明确警告反对共享 workspace.xml。有关详细信息,请参阅 myselfArtem 的答案。

C
Community

忽略整个 .idea 文件夹不一定是最好的主意。这里有很多类似的讨论。

Git源码控制下IntelliJ IDEA项目文件不断变化如何处理?

Intellij Idea 9/10,要签入(或不签入)源代码控制的文件夹?

.idea 文件夹是否应受源代码管理?

但我建议在这件事上检查official FAQ


注意: IntelliJ's documentation 明确警告反对共享 workspace.xml。有关详细信息,请参阅 myselfArtem 的答案。
这不是一个好的答案。首先,您提供的所有内容都是链接(将来可能会中断)。其次,它把工作放在读者身上,而不是在 SO 的答案响应精神中真正成为答案。
A
Artem Zaytsev

.idea 目录中的所有设置文件都应置于版本控制之下,除了存储本地首选项的 workspace.xml 之外。 workspace.xml 文件应被 VCS 标记为忽略。 -PyCharm 2017.3 项目文档

为了进一步解释,workspace.xml 包含用户特定的工作区首选项。这包括 environment variables、最近访问的文件和光标位置。


为了清楚起见,环境变量可以承载真实的密码、API 密钥等。当心!
S
Stevoisiak

虽然共享您的项目设置本身并不是一个坏主意,但您应该注意一些例外情况和潜在问题。

workspace.xml 文件包含各种特定于用户的设置,例如环境变量、光标位置和 Python SDK 位置。环境变量可能包括私有数据,例如用户名和密码

环境变量可能包括私有数据,例如用户名和密码

字典文件夹包含自定义拼写,如果两个开发人员具有相同的名称,可能会导致冲突。

.idea 文件夹是特定于 PyCharm 的,这意味着使用不同 IDE 的开发人员可能会导致项目不同步。

IntelliJ 自己的文档包括对不应共享的特定文件的几个警告。

如果您确实决定分享 .ideaIntelliJ's official documentation 会提供以下建议

所有最新的 IDE 版本默认使用 [.idea] 格式。以下是您需要共享的内容: 项目根目录中 .idea 目录下的所有文件,除了存储用户特定设置的 workspace.xml 和 tasks.xml 文件 可以位于不同模块目录中的所有 .iml 模块文件(适用到 IntelliJ IDEA)小心共享以下内容: 生成签名构建的 Android 工件(将包含密钥库密码) 在 IDEA 13 和更早的 dataSources.ids 中,datasources.xml 可以包含数据库密码。 IDEA 14 解决了这个问题。您可以考虑不共享以下内容:基于 Gradle 或 Maven 的项目的 .iml 文件,因为这些文件将在导入 gradle.xml 文件时生成,请参阅此讨论用户词典文件夹(以避免其他开发人员同名时发生冲突) .idea/libraries 下的 XML 文件,以防它们是从 Gradle 或 Maven 项目生成的 来源:JetBrains - How to manage projects under Version Control Systems


我相信如果您使用 Jetbrains 的 gitingore 文件,这些问题中的大部分都会得到解决。 github.com/github/gitignore/blob/master/Global/…
m
minsu

将整个 .idea/ 目录包含到项目中时,我发现了一些问题。

如果您推送到包含 .idea/ 目录的 git 存储库,并在 other machine 上使用 pycharm 克隆该项目,pycharm 无法正确识别该项目

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


J
Jake

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