从git中删除尚未推送的文件,但也没有在最新提交中删除?

时间:2014-11-18 15:40:28

标签: git

我找到了这个git的精彩帮助页面:

https://help.github.com/articles/working-with-large-files/

并且这两种方法为我工作...我认为因为我试图摆脱的大文件不在最近的提交中而且我还没能推动..但是在最新状态下,我已经删除了文件..而且这个删除也没有被推送..

所以这就是它的样子:

enter image description here

  • 在选定的版本中我意外添加了大傻瓜.mov文件
  • 两次提交后我已将其删除

你可以看到我已经试过了一件事:

  • 在我添加了文件" git checkout blabla"
  • 后,我又回到了修订版。
  • 我删除了文件" git rm /assets/video/landed.mov"
  • 我做了一个新的提交" git commit -m'删除了landed.mov"
  • 我换回主人 - >他警告我,我将从这个提交中解除我的改变,为什么不创建一个新的分支? - >所以我创建了新的分支" fixing-movie"
  • 最后我将分支重新整合到主人,希望它能解决问题"某种程度上"我的大文件问题

并且是的..显然它没有修复任何东西 - 因为他仍然希望在他再次进入我对该文件的所有删除之前先推出有问题的提交...

欢迎任何帮助,非常欢迎!因为我脑子里唯一留下的是 - 创建一个新的repo ..丢失所有提交..并再次手动黑客攻击所有更改..

1 个答案:

答案 0 :(得分:1)

您可以执行交互式rebase并“修复”将不需要的文件删除到您添加它的提交中的提交。这基本上会保留原始提交,就好像文件从未添加过一样。

从命令行(您需要提交/存储任何更改):

git rebase -i origin/master

您将看到一个文本编辑器,您可以在其中从上到下操作您所做的提交。移动“删除...”提交,以便它直接在_“MOJ-1120 ...”提交之后。将pick更改为fixup,保存文件并退出。

如果这不符合您的要求,您可以使用git reflog返回到您之前的位置。您可能希望在执行此操作之前记下当前的SHA,以使其更容易。