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

时间:2012-06-20 16:33:01

标签: 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

5 个答案:

答案 0 :(得分:588)

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

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

.idea

从存储库

中删除它

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

  

Remove a file from a Git repository without deleting it from the local filesystem

将更改发送给他人

第三,提交.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是您要推送到的遥控器的名称)

答案 1 :(得分:77)

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

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

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

答案 2 :(得分:1)

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

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

.idea

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

git rm -r --cached .idea

有关更多信息。参考:Removing Files from a Git Repository Without Actually Deleting Them

Stage .gitignore文件。使用以下命令

git add .gitignore

提交

git commit -m 'Removed .idea folder'

推送到远程

git push origin master

答案 3 :(得分: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命令来推送更改。

答案 4 :(得分:0)

如果你还没有推送到 git

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

如果“git rm .idea/ -r --cached”抛出错误“fatal: 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