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

时间:2012-11-23 17:27:18

标签: git

我创建了一个git repo,并在我的android projekt上工作了一下,但现在我认识到我在repo中添加了文件,每次都会更改,因为它们是生成的。如何删除它们并确保不会再次添加。

我已将它们添加到.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 个答案:

答案 0 :(得分:10)

由于您只想将其从存储库中删除,而不是从文件系统中删除,因此您需要使用:

git rm --cached <file>

这将从索引中删除文件,因此它不会在下次提交中,但会将文件保留在磁盘上。

答案 1 :(得分:3)

git rm <file>

应该从repo中删除文件。

答案 2 :(得分:3)

git rm是您希望文件继续前进的答案。

如果您希望生成的文件永远不在回购中,您需要查看git filter-branch,特别是第一个示例。