Git commit : confirmer et sauvegarder les changements !

Lorsque vous commencez à utiliser Git, à un moment donné, vous vous heurtez à Git commit ! C’est parce que c’est l’une des commandes principales et les plus basiques de l’outil, donc, peu importe comment vous l’utilisez, vous en entendrez parler…

Elle est très importante dans le processus de sauvegarde des modifications que vous effectuez et de leur enregistrement dans un historique de votre référentiel. Si vous venez du monde des SVN (Apache Subversion), vous remarquerez que certains concepts sont très différents ici.

Découvrez ce que nous allons voir dans cet article :

  • Qu’est-ce que le commit Git et comment fonctionne-t-il ?
  • Git commit vs SVN commit : quelles sont les différences ?
  • Options à utiliser avec Git Commit
  • Création de commits en deux étapes
  • Comment annuler les commits ?

Qu’est-ce que le commit Git et comment fonctionne-t-il ?

O Git commit vous permet de créer un commit, ce qui signifie que vous pouvez sauvegarder l’état de votre dépôt à ce moment-là. Il existe différentes stratégies pour faire des commits, mais l’idée principale est qu’à chaque fois que votre code fonctionne avec une nouvelle petite fonctionnalité, il y a un commit.

Ainsi, au fil du temps, vous serez en mesure de voir l' »historique » de votre dépôt et ce qui s’est passé pour qu’il soit tel qu’il est aujourd’hui. Un engagement, en plus de montrer une instantané de votre dépôt, comporte d’autres métadonnées, telles que l’identité de l’auteur, un message, un horodatage, etc.

Git commit vs SVN commit : quelles sont les différences ?

Git commit et SVN commit sont très différents ! Pour comprendre, les différences partent du fait que SVN est entièrement centralisé alors que Git est distribué.

Dans SVN, un commit représente une copie de votre travail dans le dépôt central. Cela signifie qu’un commit permet d’effectuer des changements du dépôt SVN local vers le dépôt SVN central. Alors que dans Git, il ne vous oblige pas à interagir avec le dépôt distant tant que vous ne le souhaitez pas. C’est-à-dire que vous pouvez commettre dans votre dépôt local et ne pas influencer les autres dépôts à ce moment-là.

Une autre différence est ce que représente le commit dans chaque plateforme. Dans SVN, le commit conserve les différences par rapport aux fichiers originaux. D’autre part, dans Git, l’intégralité du contenu des fichiers est enregistrée dans chaque commit. C’est l’une des raisons qui rendent Git plus rapide par rapport à SVN, puisque la version complète du fichier est déjà disponible, alors que dans SVN il faut l' »assembler » à partir des différences entre eux.

Différences entre un commit Git et un commit SVN

Options à utiliser avec Git Commit

Définissez votre message avec l’option -m <message>

Vous pouvez inclure un message dans votre livraison. Essayez d’utiliser des descriptions objectives et simples pour que votre équipe, et même vous à l’avenir, puisse comprendre ce que fait cet engagement. Il suffit d’utiliser la commande suivante :

git commit -m "Aqui vai uma mensagem"

Inclure tous les fichiers modifiés avec -a

Avec cette commande, vous inclurez automatiquement tous les fichiers modifiés dans votre commit. En d’autres termes, vous sauterez l’étape consistant à ajouter les fichiers à la zone de transit et passerez directement à la zone de livraison. Cependant, les nouveaux fichiers, qui ne sont pas encore suivis par git, ne seront pas inclus. Vous pouvez utiliser cette commande avec l’option message, comme ceci :

git commit -am "Aqui vai uma mensagem"

Réécrire le dernier commit avec -amend

Si vous avez déjà effectué un commit et que vous avez oublié d’ajouter un fichier ou une modification ou même si vous voulez changer le message de commit, la fonction modifier est la meilleure option. Mais attention, le modifier ne modifie pas seulement le dernier commit, mais le remplace entièrement par celui que vous créez maintenant. Vous avez deux façons d’utiliser amender. Quelle que soit celle que vous utilisez, si vous voulez ajouter des modifications de fichiers, faites-le avant d’utiliser ces commandes (vous devez utiliser la commande git add pour cela) :

  • Avec changement de message :
git commit --amend -m "Aqui vai uma mensagem" 
  • Sans changement de message. Dans ce cas, vous utilisez le -no-edit de sorte que l’annulation de la livraison se fasse sans avoir à modifier quoi que ce soit dans la commande.
git commit --amend --no-edit

Une autre précaution à prendre, c’est d’éviter d’utiliser la fonction modifier lorsque le dernier commit est déjà dans le dépôt distant, c’est-à-dire qu’il est déjà public et peut avoir été utilisé comme référence pour d’autres. Faites un modifier dans ce cas, cela peut causer beaucoup de confusion et cela devient également plus complexe à corriger pour les autres personnes qui ont déjà utilisé l’ancien commit. Ne l’utilisez qu’en cas d’extrême nécessité et, si vous le faites, communiquez avec toutes les personnes qui utilisent ce dépôt.

Création de commits en deux étapes

Faisons le commit le plus simple dans cet exemple. Une fois que vous avez apporté toutes les modifications à vos fichiers, vous pouvez le faire immédiatement :

git commit -am "Mensagem do seu commit"

Et dans le cas où vous avez de nouveaux fichiers, non encore verrouillés par Git, vous devrez exécuter deux commandes :

git add .
git commit -m "Mensagem do seu commit"

O git add est pour vous d’ajouter tous les fichiers à la zone de transit afin que vous puissiez les livrer. C’est ça ! Vous avez fait votre premier engagement !

Comment annuler les commits ?

Il y a deux idées principales quand on veut annuler un commit, qui peuvent être :

  • si le commit est déjà dans l’environnement distant. Dans ce cas, l’annuler peut causer de gros problèmes aux autres programmeurs qui collaborent à ce référentiel ;
  • si le commit est uniquement dans l’environnement local. Cette option est beaucoup plus sûre.

Présentons quelques possibilités d’annuler une livraison. Pour mieux comprendre chacune de ces commandes, vous pouvez consulter le post spécifique qui leur est consacré. Voici quelques-unes des possibilités :

  • git revert: est le moyen le plus sûr d' »annuler » un commit, car il n’efface pas le commit de l’historique. Ce qu’il fait, c’est prendre les changements du commit que vous voulez annuler et créer un nouveau commit avec ces changements annulés. Le grand avantage est qu’il ne modifie pas l’historique des livraisons de votre dépôt ;
  • git resetSi vous avez vraiment besoin de supprimer un commit, souvent parce qu’il contient des informations sensibles, vous pouvez utiliser git reset. Si le commit est déjà dans l’environnement distant, n’oubliez pas d’en informer l’équipe ;
  • git reflog: avec cette commande, vous avez accès aux journaux de référence, également connus sous le nom de reflogsde chacun des commits. À partir de là, vous pouvez supprimer ou effectuer d’autres opérations avec chacune des références.

Maintenant que vous savez ce qu’est un commit et les variations que vous pouvez utiliser cette même commande, vous pouvez commencer à comprendre l’importance de l’historique dans vos projets et dépôts. Surtout si plusieurs développeurs apportent des modifications au même projet.

Nous renforçons également l’importance des bons messages d’engagement ! Plus important que d’avoir une histoire, il faut être capable de comprendre cette histoire. D’où l’importance que vos messages soient explicites, simples et objectifs.

Continuez à étudier d’autres commandes Git, et découvrez git push, une autre commande très importante !