我创建了一个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")
由于
答案 0 :(得分:10)
由于您只想将其从存储库中删除,而不是从文件系统中删除,因此您需要使用:
git rm --cached <file>
这将从索引中删除文件,因此它不会在下次提交中,但会将文件保留在磁盘上。
答案 1 :(得分:3)
git rm <file>
应该从repo中删除文件。
答案 2 :(得分:3)
git rm
是您希望文件继续前进的答案。
如果您希望生成的文件永远不在回购中,您需要查看git filter-branch
,特别是第一个示例。