Je n'ai pas testé cela, mais je pense que je forcerais vos commits à être publiés sur github (réécrivant ainsi l'histoire), que votre "ami" tire vos changements, rebase ses changements, puis pousser ses changements vers le haut. De cette façon, vous obtenez vos deux changements au même endroit.
Une bonne règle de base est de NE JAMAIS FORCER A Engagez-vous à GitHub :) Faites-cette fois pour obtenir votre pension à l'état où il était avant votre « ami » foiré:
# on your machine
git push origin master --force
#now your "friend's" working copy is fairy screwed up, so on his machine:
git checkout -b screwed_up #checks out a new branch called screwed_up
git pull origin master # pulls in your changes
git checkout master #checks out his version with his changes
git rebase screwed_up #moves his changes to the end of your changes (see git graphs for more details)
git commit -am 'your message here'
git push origin master #pushes his changes, which are now merged with your changes back to github