355

我不小心将.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
4

6 回答 6

753

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

首先,将它添加到.gitignore,这样它就不会再次被您(或其他人)意外提交:

.idea

从存储库中删除它

其次,仅从存储库中删除目录,但不要在本地删除它。为此,请执行此处列出的操作:

从 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

(可选地,您可以用 替换最后一行git push some_remote,其中some_remote是您要推送到的遥控器的名称)

于 2012-06-20T16:36:01.663 回答
109

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

git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"

之后,您可以将其推送到遥控器,之后的每个结帐/克隆都可以。

于 2012-06-20T16:34:52.437 回答
1

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

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

.idea

从远程仓库中删除 .idea 文件夹。使用以下命令。

git rm -r --cached .idea

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

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

git add .gitignore

犯罪

git commit -m 'Removed .idea folder'

推送到远程

git push origin master

于 2020-03-12T08:15:38.520 回答
0

您应该将.gitignore文件添加到您的项目并添加/.idea到它。您应该在一行中添加每个目录/文件。

如果你有一个现有的.gitignore文件,那么你应该简单地在文件中添加一个新行并放入/.idea新行。

在那个运行git rm -r --cached .idea命令之后。

如果遇到错误,可以运行git rm -r -f --cached .idea命令。毕竟运行git add .,然后git commit -m "Removed .idea directory and added a .gitignore file"最后通过运行git push命令推送更改。

于 2019-01-03T14:57:29.887 回答
0

如果你还没有推送到 git

git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"

如果“git rm .idea/ -r --cached”抛出错误“致命:pathspec'.idea'不匹配任何文件”并且已经推送到带有.idea的git。

git push origin --delete remoteBranchName
git add . //Everything is up to date
git commit -m "Removed the .idea folder" //Nothing to commit
git push origin remoteBranchName
于 2021-03-10T10:16:24.627 回答
0

为避免此问题再次发生,我发现拥有一个包含 的全局 gitignore 文件很有用.idea,例如:

$ echo '.idea' >> ~/.gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global

这种方法的另一个优点是您不需要使用 IDE 的详细信息“污染”项目的 .gitignore 文件。OTOH,您也可以选择添加.idea到项目中,.gitignore这样项目的其他贡献者就不会遇到问题。

于 2021-09-09T11:14:51.673 回答