在IntelliJ IDEA中从版本控制中移除文件

46

我正在使用IntelliJ IDEA Community Edition 2016.1。

我已将我的项目放在Git下,并托管在GitHub上。

当我第一次点击“Share Project on GitHub”按钮时,每个文件都被选择以纳入版本控制。

现在,我想从版本控制中排除模块的IML文件。显然,我想在我的硬盘上保留它。不幸的是,我找不到方法来实现这一点。我应该如何做到这一点?

我尝试从Web界面中删除它,但在进行pull/push操作时出现了一些致命错误。

3个回答

76

有一个小技巧。

  • 进入文件菜单->设置|版本控制|确认,然后在当文件被创建时部分下检查添加到版本控制前显示选项设置。 或者,您可以选择检查不添加。强烈建议不要选择默默添加
  • 删除您不想被版本控制系统跟踪的文件。
  • 按下Ctrl+Z撤销文件的删除操作。 如果IDE显示弹出窗口让您选择是否将新文件添加到VCS,请点击No
  • 提交本地更改,然后文件就会从VCS中移除。

3
这正是我所需要的。如果我撤销删除并尝试提交和推送,则会出现错误。相反,先删除、提交和推送,然后将光标放在包名称上,恢复删除的文件但不添加到版本控制中。这样做效果很好。 - Slayer6
4
重要提示:删除文件的步骤必须在“版本控制窗口”(Alt+9),本地更改标签页中进行。如果您在项目树中删除文件,则无法使用Ctrl + Z撤消操作来找回文件。 - Miro

35

一旦您提交文件,它将开始被跟踪。
要从这一点上删除文件,您必须从存储库中删除它们。

现在您需要做的是删除整个.idea文件夹,提交删除操作,并将idea扩展名添加到您的.gitignore文件中。


如何通过命令行执行此操作,也可以通过IDEA完成。

# Remove the file from the repository
git rm --cached .idea/

# now update your gitignore file to ignore this folder
echo '.idea' >> .gitignore

# add the .gitignore file
git add .gitignore

git commit -m "Removed .idea files"
git push origin <branch>

我如何从IntelliJ IDEA内部访问Git Bash? - spongebob
1
查看 - 工具窗口 - 终端 将打开一个嵌入式的 bash。 - Jelle
1
你需要记住的是:删除文件并提交删除,同时将其添加到忽略文件中。 - CodeWizard
嗨,如果我们在远程仓库中有.idea文件夹,会有哪些危害? - milad salimi
@miladsalimi .idea目录包含仅适用于您本地计算机的值/设置。因此,如果您提交了该目录,其他人获取您的.idea目录后可能会遇到问题。https://stackoverflow.com/questions/5362816/should-the-idea-folder-be-kept-under-source-control - undefined

1

关于Subversion:

  • 进入文件属性上下文菜单 > 复制路径
  • 打开终端使用 "svn rm --keep-local" 命令进行删除

    svn rm --keep-local /aa/bb/cc/myfile.txt


我不明白,为什么其他答案会得到+1,而这个没有。问题是如何从Git版本控制中删除已添加的文件,但保留文件在本地。这是正确的答案。我只是想知道为什么在IntelliJ(IntelliJ IDEA 2023.1.3(旗舰版))中无法在Git菜单/删除选项下选择此属性(--keep-local)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接