Вы могли бы сделать git push --force origin branchname
, но это, вероятно, не самое лучшее решение, если вы ветви были разделены.
В следующий раз, вместо того, чтобы просто делать git reset --hard
и изменять свою историю, вы должны вернуть конкретные комманды, о которых вы заботитесь, - или вы должны применить фиксацию, которая отменяет то, что вы хотели сделать.
К счастью, git безумный и позволяет исправить это даже тем, что у вас есть.
Чтобы сделать это выглядит примерно так (начиная с ветки вы заботитесь о подталкивании в конечном счете - позволяет называть его master
):
git branch good_tree # save a branch with your recent commits
git reset --hard last_good # reset working tree to fix pushed problem
git fetch --all # update local repo with remote changes
git reset origin/master # move pointer to where remote repo's master is
# without changing working tree from last_good
git add; git commit; git push # commit fixed stuff
git checkout good_tree # rebase your changes from last_good
git rebase master # tack good_tree onto master from undone changes
git checkout master # go back to master
git merge good_tree # now you are back to where you want to be
git push # and you can push
... иш - вы можете иметь конфликты.
Вы можете принудительно нажать, но я рекомендую сохранить работу на пульте дистанционного управления в отдельной ветви ... git push origin -f master –
Посмотрите на ['git push -force'] (https: // www. kernel.org/pub/software/scm/git/docs/git-push.html). Будьте очень осторожны с этим, хотя. – adrianbanks