Kévin Subileau

Espace personnel

Git-Logo

Git - Modifier un ancien commit avant publication

Lorsque l'on travaille avec Git, en cas d'erreur sur le dernier commit comme un fichier manquant ou une portion de code resté commentée, il est simple de le modifier avec le paramètre --amend, tant que ce commit n'a pas été poussé sur le dépôt public.

Mais qu'en est-il pour un commit plus ancien ? Imaginez par exemple que vous faites deux commits et que vous vous apercevez d'une erreur sur l'avant dernier, juste avant de pousser le tout sur le dépot public. Pour corriger cette bavure, vous pouvez alors utiliser la séquence de commandes suivante.

Tout d'abord, commencez par identifier le numéro du commit que vous souhaitez modifier. Pour cela, vous pouvez utiliser la commande git log pour afficher l'historique. Disons qu'il s'agit par exemple du commit b8603aca. Utilisez ensuite la commande rebase pour revenir à ce commit :

git rebase --interactive b8603aca^

Bien évidemment, remplacer le numéro de commit par le vôtre dans la commande précédente. Dans l’éditeur de texte par défaut, remplacer pick par edit sur la ligne correspondant au commit que vous souhaitez modifier, puis enregistrez et quittez. Ouvrez ensuite votre éditeur préféré et faites les modifications nécessaires. Une fois que tout est bon, ajouter les fichiers modifiés et les nouveaux avec git add, puis modifier le commit en utilisant la commande suivante :

git commit -a --amend --no-edit

Ensuite, il ne vous reste plus qu'à restaurer les commits suivants avec la commande ci-dessous :

git rebase --continue

Résolvez les éventuels conflits et c’est tout ! Notez bien que cette méthode ne fonctionne que si les commits à partir de celui que vous souhaitez modifier n'ont pas été poussé sur le dépôt public ! Dans le cas contraire, le plus simple reste de faire un nouveau commit pour corriger les erreurs de l'ancien.

Octocat

GitHub offre 5 dépots privés aux étudiants

GitHub est sans doute le service d'hébergement et de gestion de code source le plus populaire du Web. Par défaut, lorsque vous créez votre compte, vous disposez gratuitement d'autant de dépôts (repository) que vous souhaitez, à condition que ces dépôts soient publics. Si vous ne souhaitez pas publier le code source ou limiter son accès à certaines personnes, vous devez mettre la main à la poche et choisir un des forfaits proposés en fonction du nombre de dépôts privés dont vous avez besoins.

Sauf si, tout comme moi, vous avez toujours la chance toute relative d'être encore étudiant ! En effet, GitHub offre sur simple demande 5 dépôts privés durant 2 ans à tous les étudiants inscrits au service.

Pour cela, après vous être connecté sur la plateforme avec vos identifiants habituels, rendez-vous simplement à l'adresse https://github.com/edu, cliquez sur "I'm a student", et remplissez le court formulaire en indiquant notamment votre nom, votre adresse email, et une courte description de votre besoin. Utilisez de préférence l'adresse email fournie par votre université afin de faciliter le traitement de votre demande. Si cette adresse n'est pas dans la liste déroulante, faites un détour par la page https://github.com/settings/emails pour l'ajouter et la vérifier. Si votre université ne vous fournit pas d'email, vous pouvez utiliser une autre adresse mais il est possible que GitHub vous demande des scans de documents permettant de justifier de votre statut d'étudiant.

Sous réserve que votre demande soit accordée, vous recevrez sous 24 heures environ un email très sympathique à l'adresse que vous avez renseigné pour vous indiquer que votre compte a été mis à jour, vous faisant ainsi économiser près de $170 !

github-free-student-micro-account

Vous pourrez ensuite contrôler l'accès à vos dépôts privés et ajouter si nécessaire votre binôme de projet ou tout autres collaborateurs, étudiants ou non, sans que ces derniers n'aient à payer quoi que ce soit !

Enfin, si vous avez besoin de plus de 5 dépôts privés et que vous ne souhaitez pas débourser un centime, vous pouvez également vous tourner vers d'autres services similaires, comme BitBucket, qui propose un nombre illimité de dépôts privés limités à un quota de contributeurs. Mais vous ne profiterez pas de la grande popularité et de la dimension sociale de GitHub...