git:如何删除此文件?

时间:2017-08-29 11:41:20

标签: git

我有一个文件不断回到我当地的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从此忘记它。

2 个答案:

答案 0 :(得分:1)

untracked表示git对此一无所知,但有些东西已经放在你的工作树中了。这意味着一些事情:

首先,这意味着您的git commit -m "Delete MuscleSliderX.java" 错误输出(“无需提交”)。我假设一个相当现代的git版本;我不知道它是否总是出现这个错误;但无论如何,如果你报告的status输出是准确的,那么唯一正在执行任何操作的命令是git rm - 实际上只有一个普通rm就足够了,因为文件不是'无论如何都要上演。

其次,这意味着git的外部会继续重新创建该文件。我不知道是什么,但摆弄git不会解决它。你不需要git一劳永逸地忘记文件 - 它忘记了文件的所有内容,因此当文件放在那里/某人/某人时,它不会告诉你它在那里。

如果您 希望即使其他内容将其放入您的工作树中也不要告诉您该文件,那么您需要在.gitignore中添加一个条目。但这仍然不会阻止文件放在工作树中。如果您希望文件停止显示,您需要弄清楚是什么创建它。

答案 1 :(得分:0)

尝试使用git clean -f来克服未跟踪的文件