Git删除只推送最后一次本地提交

时间:2014-01-09 16:56:58

标签: git git-reset

我在Rails项目的本地git版本上做了一些更改,我不想丢失,但是这样做,我不小心在Git中创建了一个 vendor / bundle 文件夹。

我意识到,一旦我做了这样做,我就为文件夹做了一个git rm(并将文件夹添加到gitignore),并再次提交。但是,现在我无法推送原件,因为捆绑太大了。

我需要什么

  • 如何保留我所做的编辑(和新文件)。
  • 从git历史记录中删除捆绑文件夹
  • 并且由于目录太大而没有推送它们

我一直在寻找各种软复位方式,但我被卡住了..

2 个答案:

答案 0 :(得分:0)

我想我找到了答案:

  

这种情况相当普遍。有人意外地犯了一个巨大的   二进制文件与一个轻率的git add。,你想要删除它   到处。也许你不小心提交了一个包含a的文件   密码,你想让你的项目开源。过滤分支   是您可能想要用来擦除整个历史记录的工具。至   您可以从整个历史记录中删除名为passwords.txt的文件   使用--tree-filter选项过滤分支:

Source

git filter-branch --tree-filter 'rm -f /vendor/bundle' HEAD

答案 1 :(得分:0)

您可以执行git reset --soft HEAD~x,其中x是您要重置的审核次数 - 在您的情况下为2,然后将目录添加到gitignore文件中,并将其从暂存区域中删除。

相关问题