2012-03-01 33 views
1

我想从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 

所以问题是如何从回购删除文件(小心加入)?我不想通过git跟踪文件名我打算将这个文件名添加到.gitignore。

最好的问候,

彼得

回答

2

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

git add。 -A

git的承诺-a -m “删除文件”

0

当你

git rm --cached 

您删除git的文件,但它们被留在磁盘上,这样你就犯后这个改变,你的文件仍然在磁盘上,但不在git中。因此git将它们识别为未跟踪的文件。

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

0

在我看来我看来,最好的办法就是修改你的承诺:

git commit --amend 

但是,如果你的提交已经被推进到远程仓库,我建议建立另一个承诺和删除这些文件。我认为这是解决这个问题的最简单方法。