Remove file from repository under git
我想从Git存储库中删除几个文件。我的存储库有几个分支,我执行以下操作:
1 2 3 | git rm --cached filename git commit -am"deleted filename" git checkout anotherbranch |
我得到:
1 2 3 4 5 6 | error: The following untracked working tree files would be overwritten by checkout: output/filename Please move or remove them before you can switch branches. Aborting |
号
那么问题是如何从repo中删除文件(意外添加)?我不想通过git跟踪文件名,我计划将此文件名添加到.gitignore。
顺祝商祺!
彼得
我通常会删除这些文件(而不是通过git命令)。然后删除所有文件后,我会:
git add . -A
git commit -a -m"remove files"
号
在我看来,我认为最好的办法是修改你的承诺:
1 | git commit --amend |
号
但是,如果您的提交已经被推送到远程存储库中,我建议您创建另一个提交并删除这些文件。我认为这是解决这个问题最简单的方法。
要从repo中永久删除文件,必须传递-f选项:
在这里讨论了切换分支时未跟踪文件的问题:签出将覆盖以下未跟踪的工作树文件
当你这样做的时候
1 | git rm --cached |
您从Git中删除文件,但它们仍保留在磁盘上,因此提交此更改后,您的文件仍保留在磁盘上,但不在Git中。因此,Git将它们识别为未跟踪的文件。
您希望切换到仍有这些文件的分支,如果签出到此分支会影响本地更改(未跟踪的文件或修改的文件),Git将不允许您切换到其他分支。