Série Git - Les commandes usuelles (3/5)
Comment intéragir avec Git ?
Le fonctionnement de Git intégré, nous allons présenter quelques commandes usuelles de Git.
Il ne s’agit là que d’une petite partie des commandes disponibles, mais elles représentent une base suffisante pour bien démarrer.
Exemple d'usage de la commande ...
.1 Initialisation locale d’un projet
1.1 git clone
Récupère un repository
git existant et copie la dernière version dans le répertoire de travail.
Exemple d'usage de la commande git clone
État initial :
|
|
|
|
Clone d’un projet Git existant :
|
|
|
|
Un répertoire du nom du projet est créé :
|
|
|
|
1.2 git init
Initialise un répertoire (repository
) git.
Cela a pour unique effet de créer le répertoire .git
dans le répertoire courant contenant un ensemble de fichiers générés par défaut.
L’initialisation d’un repo peut aussi être réalisée directement dans GitLab puis cloné en local.
Exemple d'usage de la commande git init
Création d’un répertoire vide :
|
|
|
|
Initialisation d’un projet Git :
|
|
|
|
|
|
|
|
2 Affichage de l’état local du projet
2.1 git status
La commande git status
est la commande qui permet d’obtenir un rapport de l’état courrant de répertoire de travail comparé au dernier état historisé.
Cette commande décrit aussi les fichiers à l’état de staging
.
Exemple d'usage de la commande git status
On exécute la commande une première fois pour s'assurer qu'il n'y a aucune modification en attente de validation.
|
|
|
|
On ajoute un fichier README.md
:
|
|
On exécute de nouveau la commande git status
:
|
|
On voit ici que Git a bien détecté le nouveau fichier et il nous spécifie que ce fichier n’est pas suivi :
|
|
2.2 git log
La commande git log
permet d’afficher l’historique des modifications.
Exemple d'usage de la commande git log
|
|
|
|
Ici, l’historique est composé d’un seul commit
dont on peut extraire les informations suivantes :
- Hash du commit : “89bf63e0e7e764b6eec8c52ba16c9cd5eba43589” (pouvant être raccourci par “89bf63e”)
- Auteur : siwon
- Date : Tue Mar 30 09:25:05 2021 +0200
- Commentaire : mise a jour de mon fichier
2.3 git diff
La commande git diff
permet d’afficher les modifications au sein des fichiers suivis entre l’état courant et le dernier commit.
Exemple d'usage de la commande git diff
|
|
|
|
|
|
|
|
Ici, on peut lire que la ligne pouet
a été ajoutée au fichier README.md
.
3 Gestion des branches
3.1 git branch
La commande git branch
permet de lister les branches locales ou de créer des branches locales via la commande git branch new_branch_name
.
Exemple d'usage de la commande git branch
|
|
|
|
Ici nous n’avons que la branche master
. Ajoutons une nouvelle branche.
|
|
|
|
Ici, nous pouvons voir qu’il y a deux branches (master
et test
), dont une précédée d’un *
qui signifie qu’il s’agit de la branche active localement.
3.2 git checkout
La commande git checkout
permet de déplacer la position du pointeur HEAD
vers un commit spécifique.
Cela est par exemple utile dans le cas où nous voulons basculer d’une branche à une autre, retourner sur un commit précédent ou retourner sur tag précédent.
Enfin cette commande permet aussi de créer une nouvelle branche et de basculer dessus directement.
Exemple d'usage de la commande git checkout
|
|
|
|
Ici, nous sommes sur la branche master
. Basculons sur la branche test
.
|
|
|
|
Nous avons ici basculé sur la branche test
. Créons et basculons maintenant sur une branche test2
.
|
|
|
|
Nous avons bien créé une nouvelle branche test2
et basculé directement sur celle-ci.
4 Modification locale du projet
4.1 git add
La commande git add
permet d’ajouter un fichier dans l’état Staged
. Cela veut donc dire que le fichier est suivi (s’il ne l’était pas déjà) et que sa version est référencée dans le prochain point de validation.
Cette commande sera ainsi utilisée pour ajouter un fichier ou juste avant de faire un commit.
Exemple d'usage de la commande git add
|
|
|
|
Ici, nous sommes sur la branche master
et le fichier README.md
n’est pas suivi.
|
|
|
|
Le fichier README.md
est maintenant suivi et prêt à être commité.
4.2 git commit
La commande git commit
permet d’enregistrer les changements présents dans l’espace staging et de les ajouter dans l’historique des commits (.git repository
).
Exemple d'usage de la commande git commit
|
|
|
|
Ici, nous sommes sur la branche master
et le fichier README.md
est prêt à être commité.
|
|
|
|
Contrôlons maintenant l’historique des commits :
|
|
|
|
Le commit est bien enregistré dans l’historique Git local.
4.3 git merge
La commande git merge
permet de fusionner les modifications d’une branche dans la branche courante.
Cette fonction est une des clés pour le fonctionnement de Git en mode collaboratif :
Exemple d'usage de la commande git merge
Prenons l’exemple ci-dessus, nous sommes sur la branche main
et souhaitons fusionner les commits présents dans la branche feature
.
|
|
Cette commande va alors récupérer les commits présents dans la branche feature
et les réappliquer dans la branche main
.
5 Synchronisation avec les copies distantes du projet
Comme présenté dans la partie 2 de cette série, il est possible de copier les projets Git sur des remotes
.
Ces remotes peuvent être des plateformes d’hébergement (comme GitHub
et GitLab
que nous présenterons dans le prochain article) ou tout simplement un serveur Git distant.
Pour réaliser des synchronisations avec les copies distantes du projet, il existe deux commandes : git pull
et git push
.
5.1 git pull
La commande git pull
permet de récupérer les modifications distantes et de les appliquer localement (pour mettre à jour notre copie locale du projet).
L’utilisation est la suivante : git pull
.
5.2 git push
La commande git push
permet de pousser les modifications locales et de les appliquer sur la copie distante (pour mettre à jour la copie distante du projet).
L’utilisation est la suivante : git push
.