21/04/2021

3. Créer un commit

Lu 1048 fois Licence Creative Commons

Les commits

Un commit permet d'enregistrer l'état actuel du projet, prenant en compte tout ce qui est enregistré dans le staging.
Il sera constitué des éléments suivants:

  • un hash SHA-1 unique qui permettra de l'identifier
  • un message qui doit décrire ce qu'il change au projet
  • le nom et l'adresse email de l'auteur
  • la date et l'heure à laquelle il a été créé
  • la liste des changements qu'il apporte

En créant un commit, il faut donc avoir préparé le staging et indiquer un message, le reste étant enregistré automatiquement.

Créer un commit

En utilisant la commande commit, on sera invité à entrer un message:

git commit

Toutes les lignes commençant par # seront supprimées du message.

Mon premier commit !
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
#
# Initial commit
#
# Changes to be committed:
#       new file:   .gitignore
#       new file:   README.md
#

Pour enregistrer le message, si un éditeur de texte pour terminal est utilisé:

  • avec nano: Ctrl+O pour enregistrer puis Ctrl+X pour quitter
  • avec Vim: Esc pour entrer en "Normal Mode" puis : pour taper des commandes. Ecrire w pour enregistrer suivi de q pour quitter. Ce qui doit donner en bas du terminal :wq

Note: En général, l'éditeur de texte par défaut est Vim. Si vous souhaitez le changer pour nano par exemple, exécutez:

git config --global core.editor nano


Il est également possible d'ajouter une option -m pour indiquer le message du commit sans passer par un éditeur:

git commit -m "Mon premier commit !"


Après avoir enregistré le commit, on obtient un résumé des informations, notamment son hash en version courte:

git commit
[output][master (root-commit) 05f05dc] Commit initial
[output] 2 files changed, 4 insertions(+)
[output] create mode 100644 .gitignore
[output] create mode 100644 README.md

Lire le contenu d'un commit

Avec le hash du commit créé, on peut utiliser la commande show pour obtenir la liste des informations correspondantes:

git show 05f05dc
[output]commit 05f05dc5602ba1dae0aad60c5cd7b764d2b9da12 (HEAD -> master)
[output]Author: AymDev <​aymericmayeux@gmail.com​>
[output]Date:   Sat May 2 17:08:29 2020 +0200
[output]
[output]    Commit initial
[output]
[output]diff --git a/.gitignore b/.gitignore
[output]new file mode 100644
[output]index 0000000..4083037
[output]--- /dev/null
[output]+++ b/.gitignore
[output]@@ -0,0 +1 @@
[output]+local
[output]diff --git a/README.md b/README.md
[output]new file mode 100644
[output]index 0000000..f2f2115
[output]--- /dev/null
[output]+++ b/README.md
[output]@@ -0,0 +1,3 @@
[output]+# Cours git
[output]+
[output]+Projet d'initiation à **Git**

Ajouter des changements au dernier commit

Il peut arriver de créer un commit et de s'apercevoir que l'on a oublié d'y intégrer un changement. On peut alors ajouter ces changements au staging puis utiliser la commande commit avec l'option --amend:

git add README.md
git commit --amend

On sera invités à modifier le message du commit. Si l'on ne souhaite pas le modifier, on peut également ajouter l'option --no-edit:

git commit --amend --no-edit 
[output][master 50195bd] Commit initial
[output] Date: Sat May 2 17:08:29 2020 +0200
[output] 2 files changed, 5 insertions(+)
[output] create mode 100644 .gitignore
[output] create mode 100644 README.md

Attention: Cette opération réécrit l'historique, il vaut mieux éviter de l'exécuter si le commit en question a déjà été envoyé sur le dépôt distant de votre équipe.
Pour l'instant nous n'avons pas de dépôt distant, il n'y a donc aucune inquiétude à avoir.


Partie pratique

Créez votre commit initial avec ce qui a été précédemment ajouté au staging.
Par la suite, vérifiez que le staging a été réinitialisé et affichez les informations du commit grâce à son hash.