如何在Git仓库中删除生成的文件?

4
我创建了一个git仓库,并在我的Android项目上工作了一段时间,但现在我意识到我将会被生成的文件添加到了仓库中。如何删除它们并确保不会再次添加?
我已经将它们添加到.gitignore文件中,内容如下:
bin/classes/**
gen/**
bin/PDiXUploader.apk
bin/classes.dex
bin/resources.ap_
gen/de/srs/android/pdixuploader/R.java

但是现在我不确定如何从仓库中删除它,以便它不会被版本控制管理。

这是我的Git状态日志

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   bin/PDiXUploader.apk
#       modified:   bin/classes.dex
#       modified:   bin/resources.ap_
#       modified:   gen/de/srs/android/pdixuploader/R.java
#       modified:   res/layout/activity_instance_selection.xml
#       modified:   res/layout/activity_main.xml
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       res/values/dimens.xml
no changes added to commit (use "git add" and/or "git commit -a")

谢谢

3个回答

10

如果你只想从代码库中删除,而不是从文件系统中删除,你需要使用:

git rm --cached <file>

这将从索引中移除该文件,因此它不会出现在下一次提交中,但是会保留在磁盘上。


4
git rm <file>

会为您从版本仓库中删除该文件。


3

git rm是一个解决方案,如果你想让文件在以后消失。

如果你希望生成的文件从未出现在仓库中,你需要看一下git filter-branch,特别是第一个示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接