我想从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。
致以最诚挚的问候,
彼得
答案 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
但是,如果您的提交已经被推送到远程存储库,我建议创建另一个提交并删除这些文件。我认为这是解决这个问题的最简单方法。