GNU/Linux >> Tutoriels Linux >  >> Linux

Apprenez les commandes Git avec des exemples pratiques sur Linux - Partie 1

Git est un système de contrôle de version distribué. Il est principalement utilisé par les développeurs de logiciels pour la gestion de leur code source. Git est un logiciel gratuit et open source et de nombreuses grandes organisations l'utilisent pour gérer leur énorme base de code.

Dans ce tutoriel, nous allons nous familiariser avec Git. Ce sera un guide pratique. Ce didacticiel suppose que Git est installé sur votre système.

Configuration initiale de l'utilisateur Git

Nous devons d'abord configurer les paramètres de l'utilisateur Git. Nous pouvons définir ces paramètres pour tous les référentiels présents sur le système actuel ou pour un référentiel particulier. Comprenons cela avec un exemple :

Identité de l'utilisateur

Dans Git, nous pouvons spécifier l'identité de l'utilisateur en fournissant son nom et son adresse e-mail. Ces informations seront utilisées lors de chaque opération de validation. Exécutez la commande ci-dessous dans le terminal pour attribuer une identité :

$ git config --global user.name "Linuxtechi User"
$ git config --global user.email "[email protected]"

Éditeur

Ce paramètre configure l'éditeur, qui sera utilisé lors de la transmission du message de validation :

$ git config --global core.editor vim

Compression

Ce paramètre configure le niveau de compression à utiliser. La plage valide pour la compression est comprise entre -1 et 9. La valeur -1 indique la compression zlib et correspond au niveau de compression par défaut. La valeur 0 signifie qu'il n'y a pas de compression, et 1 à 9 sont différents compromis vitesse/taille, 9 étant le plus lent.

$ git config --global core.compression 2

Outil de comparaison

Ce paramètre configure l'outil de visualisation des différences. Par exemple, la commande ci-dessous configure vimdiff en tant qu'outil de comparaison :

$ git config --global diff.tool vimdiff

Dans les commandes ci-dessus, nous avons utilisé –global option partout, ce qui rendra cette configuration globale. Cela signifie que la même configuration sera appliquée à tous les référentiels présents sur le système actuel. Pour rendre le référentiel de configuration spécifique, supprimez simplement l'option –global.

Configuration de la liste

Pour répertorier la configuration de Git, exécutez la commande ci-dessous dans le terminal :

$ git config -l

Cette commande générera la sortie suivante :

core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.editor=vim
core.compression=2
user.name=Linuxtechi User
[email protected]
diff.tool=vimdiff

Référentiels Git

Le référentiel est un emplacement où le code source est stocké. Nous pouvons soit créer un nouveau référentiel, soit utiliser un référentiel existant. Pour créer un nouveau référentiel vide, exécutez la commande ci-dessous :

$ mkdir my-repo.git
$ cd my-repo.git
$ git init --bare
Initialized empty Git repository in my-repo.git

Cette méthode sera utile lorsque vous démarrez un nouveau projet. Une autre méthode consiste à utiliser le référentiel existant. Un tel référentiel est hébergé sur un serveur distant comme GitHub. Pour télécharger le référentiel distant, utilisez la commande clone comme suit :

$ git clone https://github.com/linuxtechiuser/my-repo.git

Dans la commande ci-dessus, le dernier argument est le chemin du référentiel distant.

Flux de travail Git

Dans cette section, nous aborderons le workflow git.

Introduire de nouvelles modifications

La première étape consiste à introduire de nouveaux changements. Il peut s'agir de l'ajout d'un nouveau fichier ou de la mise à jour de fichiers existants. Créons un nouveau fichier et modifions le fichier existant

$ touch AUTHORS                                  # Create new file
$ echo "New Contents" >> README                  # Update existing file

Vérifier l'état du dépôt

Git est un système de suivi de contenu, il identifiera ci-dessus deux changements. Vérifions l'état du référentiel :

$ git status -s
 M README
?? AUTHORS

Dans la sortie ci-dessus, la lettre M apparaît avant README qui indique que le fichier existant est modifié. Alors que ?? apparaît avant AUTHORS, ce qui indique qu'il s'agit d'un nouveau fichier et que Git n'en est pas conscient. Un tel fichier est donc appelé fichier non suivi.

Ajouter un fichier à l'ensemble de modifications

Instruisons Git de suivre ce nouveau fichier. Nous pouvons y parvenir en utilisant la commande add. Cette opération commencera à suivre les modifications apportées à ce fichier.

$ git add AUTHORS

Vérifions maintenant l'état du référentiel :

$ git status -s
A  AUTHORS
M README

La sortie ci-dessus montre A avant AUTHORS, ce qui indique que ce fichier vient d'être ajouté sous Git. Nous pouvons ajouter n'importe quel nombre de fichiers à l'aide de cette commande.

Supprimer le fichier de l'ensemble de modifications

Demandons à Git d'annuler le suivi de ce fichier nouvellement ajouté. Nous pouvons y parvenir en utilisant la commande reset. Cette opération supprimera le fichier du changeset

$ git reset AUTHORS
$ git status -s
 M README
?? AUTHORS

La sortie ci-dessus montre que le fichier AUTHORS n'est pas suivi par Git.

Valider les modifications

Dans Git, les fichiers qui font partie du changeset formeront un commit. Chaque commit recevra un identifiant unique. Créons d'abord le changeset

$ git add AUTHORS
$ git add README

Maintenant, livrons les modifications au référentiel local avec le message de validation. Dans la commande ci-dessous, l'argument -m indique le message de validation.

$ git commit -m "Updated README and added AUTHORS"

Lorsque vous exécutez la commande ci-dessus, la sortie suivante sera générée :

[master 0b124eb] Updated README and added AUTHORS
 2 files changed, 1 insertion(+)
 create mode 100644 AUTHORS

Examiner les modifications

Dans cette section, nous discuterons des commandes qui nous permettront d'examiner les modifications apportées au référentiel.

Afficher le journal de validation

Le référentiel peut contenir plusieurs validations par plusieurs auteurs. Nous pouvons utiliser la commande log pour afficher tous les commits disponibles :

$ git log

Lorsque vous exécutez la commande ci-dessus, la sortie suivante sera générée :

commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:06:55 2018 +0530

    Updated README and added AUTHORS

C'est le commit que nous avions créé plus tôt. Dans la commande ci-dessus :

  • L'ID hexadécimal représente un ID de validation
  • La section auteur du commit affiche des détails sur l'auteur de ces modifications
  • La section Date affiche la date et l'horodatage du commit

Afficher le journal de validation abrégé

La commande ci-dessus affichera des informations détaillées sur chaque validation. Pour afficher une courte description de chaque commit, utilisez l'option –oneline comme suit :

$ git log --oneline

Lorsque vous exécutez la commande ci-dessus, elle générera la sortie suivante :

0b124eb (HEAD -> master) Updated README and added AUTHORS

Afficher le commit

L'ID de validation est associé à chaque ensemble de modifications. Nous pouvons utiliser cet ID avec la commande show pour afficher le contenu du commit.

$ git show 0b124eb6d0109d837f6f9396c9937406abd3f456

Lorsque vous exécutez la commande ci-dessus, la sortie suivante sera générée :

commit 0b124eb6d0109d837f6f9396c9937406abd3f456 (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:06:55 2018 +0530
    Updated README and added AUTHORS
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..e69de29
diff --git a/README b/README
index 980a0d5..5680123 100644
--- a/README
+++ b/README
@@ -1 +1,2 @@
 Hello World!
+New Contents

Afficher les différences

La commande Diff nous permet d'examiner les modifications avant de créer un ensemble de modifications. La commande Diff montre les différences entre le référentiel et l'espace de travail local. Modifions le fichier README et visualisons les différences

$ echo "Generating diff" >> README
$ git diff
diff --git a/README b/README
index 5680123..3158230 100644
--- a/README
+++ b/README
@@ -1,2 +1,3 @@
 Hello World!
 New Contents
+Generating diff

Dans la commande ci-dessus :

  • Le signe + indique les modifications qui sont ajoutées au fichier
  • – le signe indique les modifications qui sont supprimées du fichier

Travailler avec des référentiels distants

Jusqu'à présent, nous ne travaillions qu'avec un référentiel local. Les autres développeurs ne peuvent pas utiliser les modifications apportées par nous car elles sont locales. Par conséquent, la collaboration de code n'est pas possible. Cette section décrira les commandes qui nous permettront d'interagir avec les référentiels distants

Publier les modifications dans le référentiel distant

Nous pouvons publier les modifications locales dans le référentiel distant afin que d'autres développeurs puissent l'utiliser. Avant de publier les modifications, nous devons créer un ensemble de modifications et un commit local. Nous pouvons publier les modifications à l'aide de la commande push comme suit :

$ git push

Cette commande copie les modifications de l'espace de travail local vers le référentiel distant. Dans Git, cette opération est appelée opération push.

Synchroniser l'espace de travail avec le référentiel distant

De nombreux développeurs peuvent publier leurs modifications d'espace de travail dans un référentiel distant. Git nous permet de télécharger ces modifications et de synchroniser l'espace de travail avec le référentiel. Nous pouvons y parvenir en utilisant la commande pull :

$ git pull

Dans Git, cette opération est appelée opération pull.

Diverses commandes Git

Cette section traite de diverses commandes Git qui seront utiles pour effectuer des tâches quotidiennes :

Modifier le dernier commit

Git nous permet de modifier le dernier commit. Nous pouvons utiliser cette méthode pour éviter la création d'un nouveau commit. Il est principalement utilisé pour modifier le message de validation précédent. Pour modifier le dernier commit, utilisez –amend comme suit :

$ echo "Yet another new change" >> README
$ git add README
$ git commit --amend -m "This is amended commit

Vérifions maintenant le journal de validation :

$ git log
commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:54:55 2018 +0530

    This is amended commit

Si vous observez attentivement la sortie ci-dessus, nous pouvons voir le nouveau message de validation, son ID et son nouvel horodatage.

Supprimer les fichiers non suivis

Les fichiers non suivis sont ceux qui sont inconnus de Git. Nous pouvons supprimer tous les fichiers non suivis à l'aide de la commande clean.

Créons quelques fichiers non suivis :

$ touch delete-me-1 delete-me-2 delete-me-3

Pour supprimer tous les fichiers non suivis ci-dessus, utilisez la commande clean avec -f comme suit :

$ git clean -f
Removing delete-me-1
Removing delete-me-2
Removing delete-me-3

Veuillez noter que cette commande supprimera définitivement les fichiers, utilisez-la donc avec prudence.

Afficher les commits d'un auteur particulier

Si nous utilisons la commande log, elle affiche les commits de tous les auteurs. Pour afficher les commits d'un auteur particulier, utilisez l'indicateur –author comme suit :

$ git log --author=Linuxtechi

Lorsque vous exécutez la commande ci-dessus, elle répertorie tous les commits des auteurs Linuxtech comme suit :

commit 8bf67aec1d1de87f03ab6aae93940b17826fde1c (HEAD -> master)
Author: Linuxtechi User <[email protected]>
Date:   Fri Jul 27 21:54:55 2018 +0530

    This is amended commit

Afficher l'historique de chaque fichier ligne par ligne

Pour afficher l'historique ligne par ligne, nous pouvons utiliser la commande Blame.

$ git blame README

Lorsque vous exécutez la commande ci-dessus, la sortie suivante sera générée :

76294131 (Linuxtechi User         2018-07-27 21:12:11 -0700 1) Hello World!
8bf67aec (Linuxtechi User         2018-07-27 21:54:55 +0530 2) New changes
8bf67aec (Linuxtechi User         2018-07-27 21:54:55 +0530 3) Yet another changes

Dans la commande ci-dessus :

  • La première colonne indique l'ID de validation
  • La deuxième colonne indique l'auteur
  • La troisième colonne indique les horodatages
  • La dernière colonne indique le numéro de ligne et le contenu du fichier

Afficher les différences depuis la zone de préparation

Lorsque vous créez un ensemble de modifications à l'aide de la commande add, le fichier est logiquement déplacé vers la zone de transit. Voyons avec cet exemple :

$ echo "Let us demonstrate staging area" >> README
$ git add README
$ git diff

La commande ci-dessus ne montrera aucune différence car le fichier est déplacé vers la zone de transit. Utilisons l'opération –staged pour voir les différences :

$ git diff --staged
diff --git a/README b/README
index 74729a2..8bc5ffd 100644
--- a/README
+++ b/README
@@ -1,3 +1,4 @@
 Hello World!
 New changes
 Yet another changes
+Let us demonstrate staging area

Conclusion

Dans ce tutoriel, nous avons discuté des opérations de base de Git avec des exemples simples. Ce tutoriel est un bon point de départ pour les débutants de Git.

En savoir plus : Apprenez la commande Git avec des exemples pratiques sur Linux - Partie 2


Linux
  1. Comment utiliser la commande Linux Hexdump avec des exemples pratiques

  2. Commandes tête et queue sous Linux expliquées avec des exemples

  3. 10+ commandes Linux VI avec des exemples

  4. Commande JQ sous Linux avec exemples

  5. Commande Linux rsync avec des exemples pratiques

15 Commande Linux ps avec exemples

Commande de recherche Linux avec des exemples pratiques

Commandes Nmap avec exemples

Commandes RPM sous Linux avec exemples

Commandes SSH sous Linux avec exemples d'utilisation

La commande Wait sous Linux expliquée avec des exemples pratiques