Eclipse拥有自己的文件.project
,.classpath
和.settings
文件夹。在git中,我将它们放在.gitignore
文件中,因为我不希望它们在远程存储库中被跟踪。我的问题是,当我切换分支,然后切换回来时,这些文件已被删除,因此eclipse无法识别项目,我必须再次导入它们才能生成它们。
有没有办法告诉git忽略这些文件,但是将它们保存在本地仓库或其他东西中,以便在切换分支时不会丢失它们,但是不会跟踪它们的更改并且它们不会被推送到遥远的吗?
运行git ls-files -o
时会显示文件。
我已检查GIT: How to keep ignored files when switching branches?,但在执行git status
时文件仍会显示。
编辑:
仅 git status
就表明了这一点:
$ git status
On branch refactorizacion
Your branch is up-to-date with 'origin/refactorizacion'.
nothing to commit, working directory clean
这不起作用:
$ git add -f .project
$ git rm --cached .project
我也试过这个,但文件出现在git status
之后:
$ git add -f .project
$ git update-index --assume-unchanged .project
$ git status
On branch refactorizacion
Your branch is up-to-date with 'origin/refactorizacion'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: .project
答案 0 :(得分:0)
第二个显然不起作用。您正在向索引添加文件,但没有提交,它不知道要比较哪个以前的版本。所以git status会将它显示为一个新文件。您只能在提交一次后应用update-index。
在第一种情况下,我不确定为什么要在删除之前添加文件。
正如您提到的问题所述,您应该只删除该文件(如果git仍在跟踪它)并将其添加到.gitignore
,以便git不再跟踪它。这将使其与分支机构切换绝缘。
编辑:
确保使用git rm <file>
删除了该文件,并且所有分支中都存在添加该文件的提交。然后将文件添加到gitignore。