我不小心将.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
答案 0 :(得分:588)
首先,将其添加到.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