我有一个文件不断回到我当地的git存储库中,我试图一劳永逸地删除它。
请注意,此文件从未出现在我的.gitignore
中情况如下:
我做:
git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/com/mygfx/gui/face/MuscleSliderX.java
nothing added to commit but untracked files present (use "git add" to track)
然后我做了:
git rm ./src/com/mygfx/gui/face/MuscleSliderX.java
git add -A
git commit -m "Delete MuscleSliderX.java"
git push origin master
git status
On branch master
nothing to commit, working tree clean
下一次(另一天)我以
开始新的一天git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
src/com/mygfx/gui/face/MuscleSliderX.java
nothing added to commit but untracked files present (use "git add" to track)
如何删除此文件并让git从此忘记它。
答案 0 :(得分:1)
untracked
表示git对此一无所知,但有些东西已经放在你的工作树中了。这意味着一些事情:
首先,这意味着您的git commit -m "Delete MuscleSliderX.java"
应错误输出(“无需提交”)。我假设一个相当现代的git版本;我不知道它是否总是出现这个错误;但无论如何,如果你报告的status
输出是准确的,那么唯一正在执行任何操作的命令是git rm
- 实际上只有一个普通rm
就足够了,因为文件不是'无论如何都要上演。
其次,这意味着git的外部会继续重新创建该文件。我不知道是什么,但摆弄git不会解决它。你不需要git一劳永逸地忘记文件 - 它忘记了文件的所有内容,因此当文件放在那里/某人/某人时,它不会告诉你它在那里。
如果您 希望即使其他内容将其放入您的工作树中也不要告诉您该文件,那么您需要在.gitignore
中添加一个条目。但这仍然不会阻止文件放在工作树中。如果您希望文件停止显示,您需要弄清楚是什么创建它。
答案 1 :(得分:0)
尝试使用git clean -f来克服未跟踪的文件