我错误地将一些本地项目文件添加到git存储库并提交/推送它们。
我想从远程存储库中删除这些文件,将它们保存在本地,并忽略它们以供将来提交/推送。
最好的方法是什么?
答案 0 :(得分:4)
最干净的解决方案如下:
git rm --cached
本地额外文件(请注意--cached
选项以将这些文件保存在您的工作目录中),.gitignore
文件中,然后再添加git commit -A -m "..."
如果您认为没有太多人撤离您的远程仓库(理想情况下,没有),您可以:
git rebase --interactive first-commit-with-files^
:'^'引用第一个提交错误文件的父提交
git rm --cached
文件,然后重播其他提交,除非其中一些也对相同的文件进行了修改
Other solutions here - git filter-branch
或git rebase
),git rebase
部分。)答案 1 :(得分:1)
push -f
以强制还原远程向后(警告:这将“破坏”已经提取的提交的存储库 - 其可撤消但手动苦差事)。 答案 2 :(得分:1)
将它们添加到.gitignore
(在repo的主目录中以行分隔的文件名,然后按照本指南:http://help.github.com/removing-sensitive-data/。最后git push -f
强制覆盖远程仓库。