Tout d'abord, Git craint. Je sais, je sais, c'est censé être la meilleure chose depuis le pain tranché, mais c'est nul. C'est comme essayer de se raser avec une tronçonneuse : une petite erreur et il y a du sang et des dents partout. Peut-être que si je pouvais faire une distinction exacte entre une tête, une référence, un commit, une branche, une tige, un gnargel et un whizpoo, tout cela serait un peu plus facile, mais pour un simple mortel qui n'a que 10 ans d'expérience de SVN, Perforce et RCS, tout cela ressemble à de la magie noire.
Maintenant, pour une raison quelconque, git pull
n'a jamais fonctionné pour moi. Je reçois un message d'erreur de 10 lignes qui, jusqu'à présent, s'est avéré aussi utile que le mot "erreur". La recherche de ce message d'erreur sur Google a donné lieu à un large éventail de suggestions qui n'avaient en commun que le fait de n'avoir aucun effet apparent. Mais ce n'est pas le problème d'aujourd'hui : j'ai pris l'habitude de taper git pull origin branch
.
Aujourd'hui, je faisais des allers-retours entre deux branches, "master" et "lounge" et en ce moment je me trouvais dans la branche master. Je voulais récupérer les dernières modifications du dépôt distant vers le dépôt local, mais j'ai fait une erreur de frappe. Au lieu d'écrire git pull origin master
J'ai écrit git pull origin lounge
et puis, sans réfléchir, a tapé la bonne commande.
Il n'y a aucune trace du premier (mauvais) tirage dans le journal, juste deux fusions depuis le master :
commit 0c6be9569bab0581244ea8603bf2edfee82cdd7b
Merge: 43fdec5... db09f0d...
Author: Malvolio <info@xcompanyx.com>
Date: Wed Nov 24 20:38:58 2010 -0500
Merge branch 'master' of github.com:xcompanyx/xRepositoryX
commit db09f0d79d744d6a354142041b47ff5d748999f3
Merge: 81b6c3d... fc73e25...
Author: Malvolio <info@xcompanyx.com>
Date: Wed Nov 24 17:38:16 2010 -0800
Merge branch 'master' of github.com:xcompanyx/xRepositoryX
commit 81b6c3d04b7c464f8750a56282635526a5ef83a1
Author: Michael <info@xcompanyx.com>
Date: Wed Nov 24 17:38:07 2010 -0800
the last commit I did
Mais les fichiers nouvellement créés dans la branche lounge sont là dans mon dépôt.
Alors maintenant je suis foutu, non ? Devrais-je simplement brûler mon dépôt, cloner à nouveau le dépôt distant, réappliquer manuellement tous les changements non poussés, et mettre ça sur le compte de la nullité de Git ou y a-t-il une incantation que je peux réciter et qui va tout arranger ? Cela aiderait-il si je sacrifiais une chèvre ?