我有一些我不想在我的存储库之间共享的文件。我将它们添加到项目根目录的.gitignore
:
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
# ...
.idea/
然而,当使用git pull
:
error: Your local changes to the following files would be overwritten by merge :
.idea/workspace.xml
Please, commit your changes or stash them before you can merge.
Aborting
我已经看到有关此错误消息的一些问题,但它们是关于覆盖文件的。我想忽略更改(我不希望git跟踪它们,我不希望git更改我的本地文件)。
我做错了什么?也许问题是我在之后创建了.gitignore
文件我已经提交了我想要忽略的文件,我需要以某种方式从repo中删除它们??
答案 0 :(得分:4)
如果您不想跟踪它们,则需要先将其从历史记录中删除,然后推送该删除
git rm --cached -- afile
git add -u .
git commit
git push
只要在本地删除文件(--cached
将其保留在您的磁盘上),您的.gitignore
就会生效。
但是如果在远程repo端版本化的话,任何git pull都会返回该文件。因此,只要您确信每个其他用户都不应该再看到该文件,就需要推送(发布)该删除。
答案 1 :(得分:1)
在这种情况下,你的.idea目录已经在git中被跟踪了。所以你需要先从repo中删除它。
之后,如果您将.idea文件夹添加到.gitignore文件中,它将不会显示在未跟踪的文件中。
答案 2 :(得分:0)
不要忘记提交并推送你的gitignore文件。