在推送

时间:2018-06-03 00:09:48

标签: git

我意外地提交了整个解决方案的zip 4提交前。在我尝试推送之后我意识到这一点并且git bash显示我正在上传大于100mb的东西。

到目前为止,我已经尝试过:

  • 在本地删除文件并提交更改(这仍然会留下巨大的packfile,这在推送时似乎仍然会导致问题)
  • 使用git revert -n c5d1516c(这是包含zip的特定提交。我想我会将.zip添加到gitignore然后提交它并希望600mb pack文件将自行解决,但这也不起作用)

我尝试过其他一些方法,但我并不是最好的,所以我失去了方向

这是我的提交历史。突出显示的是包含我需要删除的zip文件,也从git历史中删除 enter image description here

如何撤消突出显示的提交,以便我可以忽略该zip文件并修复我的包文件问题?

2 个答案:

答案 0 :(得分:0)

只有在您尚未推送的情况下,才能安全地完成以下操作。

您可以执行rebase -i并删除提交。就个人而言,我不喜欢变基因,因为在幕后发生了很多动作。并且您可能只想从错误提交中删除1个文件。

因此,如果你可以将压缩你的本地更改改为1次提交,那么它会更容易:

  1. git reset --soft [commit hash before zip]
  2. 删除zip文件
  3. 提交所有本地更改

答案 1 :(得分:0)

你已经接受了答案,但看起来你基本上已经失去了#34;你所做的4个版本,你得到了一个单一的修订版说"这是我为了不小心而被破坏的其他4个版本的工作"。一个更好的解决方案,可以保留你的整个历史记录,同时取消拉链将是(假设我们正在努力掌握):

git checkout master~4 # go back to where the zip was added
git rm --cached the-zip-file.zip # remove the zip file from revision
git commit --amend --no-edit # commit without zip file, leaving everything else as is
git cherry-pick master~4..master # replicate revisions created on top of busted revision
git branch -f master # move master to new revision
git checkout master

此时,您在删除zip文件时保留了历史记录。