我使用git附件来管理大量的视频文件。而不是打字,
git annex add .
我设法,
git add .
现在我结束了巨大的回购。如何从git中删除文件(已经推送到其他4个repos)重新添加附件。我还需要从.git目录中删除它们并使用git annex?
重新添加它们答案 0 :(得分:1)
我在用户Rhubarb
写的网上某处读到了这个答案你需要:
git rm --cached <added_file_to_undo>
因为:
当我是新手时,我首先尝试了
git reset .
(撤消我的整个初始添加),只是为了得到这个(不那么)有用的消息:
fatal: Failed to resolve 'HEAD' as a valid ref.
事实证明这是因为HEAD ref(branch?)直到第一次提交后才存在。也就是说,如果你的工作流程像我一样,你会遇到和我一样的初学者问题:
cd到我的新项目目录,尝试Git,新的热点
git init
git add .
git status
......很多废话卷轴......
=&GT;该死的,我不想加上所有这些。
google "undo git add"
=&GT;找到Stack Overflow - yay
git reset .
=&GT;致命:无法将“HEAD”解析为有效的参考号。
进一步证明,在邮件列表中存在一个针对此无益的错误。
并且正确的解决方案就在Git状态输出中(是的,我把它作为'废话掩盖了)
...
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
...
解决方案确实是使用git rm --cached FILE。
请注意此处其他地方的警告 - git rm会删除文件的本地工作副本,但如果使用--cached则不会删除。这是git help rm的结果:
- cached使用此选项仅从索引中取消暂存和删除路径。将保留工作树文件,无论是否已修改。
我继续使用
git rm --cached
。
删除所有内容并重新开始。虽然没有工作,因为虽然添加。是递归的,结果是rm需要-r来递归。叹息。
git rm -r --cached
。
好的,现在我回到了我开始的地方。下次我要使用-n进行干运行,看看会添加什么:
git add -n .
我把所有东西都拉到一个安全的地方,然后相信git帮助rm关于--cached没有破坏任何东西(如果我拼错了怎么办)。
答案 1 :(得分:0)
您可以使用带有rm
标记的--cached
从git repo中删除文件而不将其从磁盘中删除:
git rm --cached file.zip
您还可以删除整个文件夹:
git rm -r --cached folder