我阅读了 PyCharm 中的 Git 集成,并从 PyCharm 创建了一个 Git 存储库。我在 PyCharm 中这样做是因为我希望 PyCharm 知道是否应该忽略 .idea
文件夹,如果是这种情况,它会自动创建一个 .gitignore
文件,其中包含行 .idea/
。
但它没有,所以我认为我不应该忽略 .idea
文件夹。但是,我快速搜索并找到了某人的示例 .gitignore
文件 here,它显然忽略了 .idea
文件夹。
所以,我的问题是,是否应该忽略 .idea
文件夹?
忽略整个 .idea 文件夹不一定是最好的主意。这里有很多类似的讨论。
Git源码控制下IntelliJ IDEA项目文件不断变化如何处理?
Intellij Idea 9/10,要签入(或不签入)源代码控制的文件夹?
.idea 文件夹是否应受源代码管理?
但我建议在这件事上检查official FAQ。
.idea 目录中的所有设置文件都应置于版本控制之下,除了存储本地首选项的 workspace.xml 之外。 workspace.xml 文件应被 VCS 标记为忽略。 -PyCharm 2017.3 项目文档
为了进一步解释,workspace.xml
包含用户特定的工作区首选项。这包括 environment variables、最近访问的文件和光标位置。
虽然共享您的项目设置本身并不是一个坏主意,但您应该注意一些例外情况和潜在问题。
workspace.xml 文件包含各种特定于用户的设置,例如环境变量、光标位置和 Python SDK 位置。环境变量可能包括私有数据,例如用户名和密码
环境变量可能包括私有数据,例如用户名和密码
字典文件夹包含自定义拼写,如果两个开发人员具有相同的名称,可能会导致冲突。
.idea 文件夹是特定于 PyCharm 的,这意味着使用不同 IDE 的开发人员可能会导致项目不同步。
IntelliJ 自己的文档包括对不应共享的特定文件的几个警告。
如果您确实决定分享 .idea
,IntelliJ'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
将整个 .idea/
目录包含到项目中时,我发现了一些问题。
如果您推送到包含 .idea/
目录的 git 存储库,并在 other machine
上使用 pycharm 克隆该项目,pycharm 无法正确识别该项目。
delete .idea/
目录后,pycharm可以很好的识别项目。
.idea/ 文件夹正是 JetBrain 存储数据的方式。它在 IntelliJ 和 PyCharm 中,所以,是的,它可以被忽略。
workspace.xml
。有关详细信息,请参阅 myself 或 Artem 的答案。