不小心将.idea目录文件提交到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
196742 次浏览

您可以从回购中删除它并提交更改。

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

之后,你可以把它推到远程,之后的每次签出/克隆都可以了。

你应该添加一个.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命令来推动更改。

最好在Master分支上执行这个操作

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

.idea

从远程回收中删除。idea文件夹。使用以下命令。

git rm -r --cached .idea

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

阶段。gitignore文件。使用以下命令

git add .gitignore

提交

git commit -m 'Removed .idea folder'

推送到远程

git push origin master

如果你还没有推到git

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

如果"git rm .idea/ -r——cached"抛出一个错误&“fatal: pathspec”。想法“与任何文件不匹配”;并且已经推送到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

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

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

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