不知何故,我有一个非常大的本地存储库,因为我偶然添加了超过2 GB的文件而没想到试图推动它。我中止了,删除了文件并做了重新授权,但是当我尝试git push origin master
到Bitbucket时,它失败了:
fatal: The remote end hung up unexpectedly
我的.git文件仍然很庞大,即使我已经删除了不需要的文件。由于推送超过2 GB,Bitbucket说我需要将http.postBuffer
设置为更高的数字。我已经多次这样做了,但经过大约15次尝试,我想重新开始。
git status
给了我这个:
On branch master
Your branch is ahead of 'origin/master' by 4 commits.
(use "git push" to publish your local commits)
但是由于推送永远不会起作用,我该如何解决?最糟糕的情况我可以爆炸回购并重建它,但我想知道是否有办法重置推送,因为它一直失败。
答案 0 :(得分:2)
当有问题的提交是最新提交时,weigreen’s answer会有所帮助,在其他情况下,您需要rewrite the history。我更喜欢交互式rebase 。
git rebase -i <some-commit-before-the-problematic-one>
它会显示提交列表以及默认操作pick
。如果您想保留有问题提交的一部分,请在该行上将pick
更改为edit
。如果您想删除它,只需删除该行。如果您选择编辑该提交,Git会将工作树置于您刚刚完成有问题的提交时的状态。改变你需要的东西并修改提交:
git commit --amend
之后,让Git使用
完成rebasegit rebase --continue
答案 1 :(得分:1)
您可以git reset
git reset --hard <commit-id>
您可以使用git log
您将失去HEAD与您选择的提交之间的所有工作