拉取远程更改时不会忽略 .gitignore 文件
.gitignore files not ignored when pulling remote changes
我有一些文件不想在我的存储库之间共享。我将它们添加到项目根目录的 .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
文件 在 我已经提交了我想忽略的文件,我需要以某种方式从回购协议中删除它们...?
如果您不想跟踪它们,您需要先将它们从历史记录中删除,然后推送该删除
git rm --cached -- afile
git add -u .
git commit
git push
只要在本地删除文件(--cached
将其保存在您的磁盘上),您的 .gitignore
就会工作。
但是任何 git 拉取都会取回该文件,如果它是在远程回购端进行版本控制的话。因此需要推送(发布)该删除,前提是您确定每个其他用户也不应该再看到该文件。
别忘了提交和推送你的 gitignore 文件。
.gitignore - 指定要忽略的故意未跟踪的文件
在这种情况下,您的 .idea 目录已在 git 中被跟踪。所以你需要先从回购中删除它。
之后,如果您将 .idea 文件夹添加到您的 .gitignore 文件中,它将不会显示在未跟踪的文件中。
我有一些文件不想在我的存储库之间共享。我将它们添加到项目根目录的 .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
文件 在 我已经提交了我想忽略的文件,我需要以某种方式从回购协议中删除它们...?
如果您不想跟踪它们,您需要先将它们从历史记录中删除,然后推送该删除
git rm --cached -- afile
git add -u .
git commit
git push
只要在本地删除文件(--cached
将其保存在您的磁盘上),您的 .gitignore
就会工作。
但是任何 git 拉取都会取回该文件,如果它是在远程回购端进行版本控制的话。因此需要推送(发布)该删除,前提是您确定每个其他用户也不应该再看到该文件。
别忘了提交和推送你的 gitignore 文件。
.gitignore - 指定要忽略的故意未跟踪的文件
在这种情况下,您的 .idea 目录已在 git 中被跟踪。所以你需要先从回购中删除它。
之后,如果您将 .idea 文件夹添加到您的 .gitignore 文件中,它将不会显示在未跟踪的文件中。