意外地将.idea目录文件转换为git

set*_*thu 289 git

我不小心将.idea /目录提交到git中.这导致我需要检查我的回购的其他地方的冲突.我想知道如何从遥控器中删除这些文件?

我仍然需要本地这些文件,因为intellij IDE需要它们.我只是不想要他们在遥控器.我已将目录.idea /添加到我的.gitignore并提交并将此文件推送到远程.这在我在我的其他机器上结帐时似乎没有任何效果.我仍然收到错误消息:

error: The following untracked working tree files would be overwritten by checkout:
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/uiDesigner.xml
.idea/vcs.xml
.idea/workspace.xml
Run Code Online (Sandbox Code Playgroud)

Tad*_*eck 638

将.idea目录添加到被忽略文件列表中

首先,将其添加到.gitignore,因此您(或其他人)不会意外地再次提交它:

.idea
Run Code Online (Sandbox Code Playgroud)

从存储库中删除它

其次,仅从存储库中删除目录,但不要在本地删除它.要实现这一点,请执行以下列出的操作:

从Git存储库中删除文件而不从本地文件系统中删除它

将更改发送给他人

第三,提交.gitignore文件并.idea从存储库中删除.之后将其推送到遥控器.

摘要

整个过程如下所示:

$ echo '.idea' >> .gitignore
$ git rm -r --cached .idea
$ git add .gitignore
$ git commit -m '(some message stating you added .idea to ignored entries)'
$ git push
Run Code Online (Sandbox Code Playgroud)

(您可以选择将最后一行替换为,您要推送的远程名称git push some_remote在哪里some_remote)

  • 注意:如果在运行`git rm -r --cached .idea`时收到消息`fatal:pathspec'.idea'与任何文件都不匹配,请删除.idea文件夹,从github拉取然后重试. (3认同)
  • 我一辈子都无法从我们的存储库中取出该文件夹...切换分支不断对其进行跟踪...人们在多个分支上都运行了此文件夹,并且每次切换分支时... git认为它需要.. 。在某个时候...删除您的.idea文件夹,以便..总之...现在基本上切换分支对于我们来说是一项设置。我试过在master上运行它...然后合并到所有分支中。 (2认同)
  • 我们是否有一个永久的解决方案来设置 IntelliJ 以从不添加 `.idea` 文件夹来提交文件? (2认同)

Ric*_*uza 83

您可以将其从存储库中删除并提交更改.

git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"
Run Code Online (Sandbox Code Playgroud)

之后,您可以将其推送到遥控器,之后每次结账/克隆都可以.

  • 这对我有用,而不是公认的答案.也许是gt add add -u有所不同. (10认同)

小智 8

最好在 Master 分支上执行此操作

编辑 .gitignore 文件。在其中添加以下行。

.idea

从远程存储库中删除 .idea 文件夹。使用下面的命令。

git rm -r --cached .idea

欲了解更多信息。参考:从 Git 存储库中删除文件而不实际删除它们

暂存 .gitignore 文件。使用下面的命令

git add .gitignore

犯罪

git commit -m 'Removed .idea folder'

推送到远程

git push origin master