Git – cómo restablecer un "empuje"

De alguna manera tengo un repository local realmente grande porque agregué más de 2 GB de files por crash y sin pensar intenté impulsar esto. He abortado, eliminé los files y volví a comprometerme, pero cuando trato de pasar el original git push origin master a Bitbucket, falla con:

 fatal: The remote end hung up unexpectedly 

Mi file .git sigue siendo enorme, aunque desde hace mucho time eliminé los files innecesarios. Como el push supera los 2 GB, Bitbucket dice que necesito establecer http.postBuffer en un número mayor. He hecho esto muchas veces, pero después de unos 15 bashs quiero comenzar de nuevo.

git status me da esto:

 On branch master Your branch is ahead of 'origin/master' by 4 commits. (use "git push" to publish your local commits) 

Pero dado que el push nunca funciona, ¿cómo lo arreglo? En el peor de los casos, podría arruinar el repository y rebuildlo, pero me gustaría saber si hay alguna manera de restablecer el impulso, ya que sigue fallando.

La respuesta de weigreen ayudará cuando la confirmación problemática sea la más reciente, en otros casos tendrás que volver a escribir el historial . Yo preferiría una rebase interactiva .

 git rebase -i <some-commit-before-the-problematic-one> 

Mostrará la list de confirmaciones junto con la acción pnetworkingeterminada para pick tal como están. Si desea mantener una parte de la confirmación problemática, cambie la pick para edit en esa línea. Si prefiere eliminarlo, simplemente elimine la línea. Si eliges editar esa confirmación, Git pondrá el tree de trabajo en el estado como cuando acabas de hacer la confirmación problemática. Cambie lo que necesita y modifique la confirmación:

 git commit --amend 

Después de eso, deja que Git termine la rebase usando

 git rebase --continue 

Puedes hacerlo por git reset

 git reset --hard <commit-id> 

Puedes get commit-id usando git log

Perderá todo su trabajo entre HEAD y la confirmación que seleccionó