我在Rails项目的本地git版本上做了一些更改,我不想丢失,但是这样做,我不小心在Git中创建了一个 vendor / bundle 文件夹。
我意识到,一旦我做了这样做,我就为文件夹做了一个git rm(并将文件夹添加到gitignore),并再次提交。但是,现在我无法推送原件,因为捆绑太大了。
我一直在寻找各种软复位方式,但我被卡住了..
答案 0 :(得分:0)
我想我找到了答案:
这种情况相当普遍。有人意外地犯了一个巨大的 二进制文件与一个轻率的git add。,你想要删除它 到处。也许你不小心提交了一个包含a的文件 密码,你想让你的项目开源。过滤分支 是您可能想要用来擦除整个历史记录的工具。至 您可以从整个历史记录中删除名为passwords.txt的文件 使用--tree-filter选项过滤分支:
git filter-branch --tree-filter 'rm -f /vendor/bundle' HEAD
答案 1 :(得分:0)
您可以执行git reset --soft HEAD~x
,其中x是您要重置的审核次数 - 在您的情况下为2,然后将目录添加到gitignore文件中,并将其从暂存区域中删除。