从git下的存储库中删除文件

时间:2012-03-01 10:05:40

标签: git

我想从git存储库中删除几个文件。我的存储库有几个分支,我遵循:

git rm --cached filename 
git commit -am "deleted filename"
git checkout anotherbranch

我得到了:

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。

致以最诚挚的问候,

彼得

4 个答案:

答案 0 :(得分:2)

我通常会删除这些文件(不是通过git命令)。然后我删除了所有文件后,我这样做:

  

git add。 -A

     

git commit -a -m“删除文件”

答案 1 :(得分:0)

当你这样做时

git rm --cached

你从git中删除了文件,但它们都留在你的磁盘上了,所以你提交这个更改后,你的文件仍在磁盘上,但不在git中。因此git将它们识别为未跟踪的文件。

你想切换到仍然拥有这些文件的分支,如果这个分支的签出会影响你的本地更改(utracked文件或修改后的文件),git将不允许你切换到其他分支

答案 2 :(得分:0)

要从您的仓库中永久删除文件,您必须传递-f选项:

git rm -f filename

此处讨论了切换分支时未跟踪文件的问题:The following untracked working tree files would be overwritten by checkout

答案 3 :(得分:0)

在我看来,我认为最好的方法是修改你的提交:

git commit --amend

但是,如果您的提交已经被推送到远程存储库,我建议创建另一个提交并删除这些文件。我认为这是解决这个问题的最简单方法。