Petite question Git

Page principale

Répondre à ce message
Auteur: Marc TERRIER
Date:  
À: La Guilde
Sujet: Petite question Git
Bonjour la Guilde,

Soit un repo Git "de référence", créé initialement vide ("bare"), et qui
a été cloné par deux utilisateurs, et qui se retrouve donc être le
"remote" de leurs copies individuelles.

Le premier utilisateur, c'est moi. Je suis l'initiateur du projet, je
commite régulièrement, et je fais des "git push origin master" de temps
à autre. Jusque là, tout va bien.

Le deuxième utilisateur, un collègue bien intentionné mais un peu
novice, est arrivé après le début du projet. Il a cloné le repo, et
apporté quelques modifications aux sources, puis il a commité *et* fait
lui aussi un "git push origin master", mais malheureusement avec des
modifications insuffisamment vérifiées. Il aurait mieux valu ne lui
donner qu'un accès en lecture seule, mais maintenant, c'est trop tard,
la bêtise est faite.

Après cela, moi, je pouvais toujours commiter dans mon coin, mais je ne
pouvais plus "pusher" sur "origin master" sans avoir "pullé" auparavant
et récupéré les modifications malheureuses du collègue, résolu les
conflits manuellement, puis commité à nouveau. Maintenant, l'historique
du projet est "crade", avec les quatre derniers commits qui ne sont que
des commits de "régularisation".

Il ne m'a pas été difficile de revenir à un historique plus "clean",
dans mon repo local, en faisant "git reset <sha1 du dernier commit
correct>", mais je ne peux toujours pas "pusher" sur "origin master"
parce que ça me dit :

$ git push origin master
Enter passphrase for key '/home/marc/.ssh/id_rsa':
To 192.168.1.139:nom_du_projet.git
  ! [rejected]        master -> master (non-fast-forward)
error: impossible de pousser des références vers 
'git@192.168.1.139:nom_du_projet.git'
astuce: Les mises à jour ont été rejetées car la pointe de la branche 
courante est derrière
astuce: son homologue distant. Intégrez les changements distants (par 
exemple 'git pull ...')
astuce: avant de pousser à nouveau.
astuce: Voir la 'Note à propos des avances rapides' dans 'git push 
--help' pour plus d'information.


Comment est-ce que je pourrais revenir en arrière ?
Est-ce même possible ?

Merci d'avance de vos suggestions,

--
Marc TERRIER