Git

22 commandes Git essentielles

22 commandes Git essentielles
Git est devenu le système de contrôle de version par excellence. L'essor de la popularité de Git peut être attribué à sa vitesse, son agilité et sa polyvalence. Que vous soyez un développeur Web indépendant ou un concepteur de logiciels pour des applications au niveau de l'entreprise, vous pouvez bénéficier de l'utilisation de Git. Il vous aide à garder une trace de vos fichiers grâce au contrôle de version systématique. Git facilite le retour aux anciennes versions de code ou la création de nouvelles branches pour expérimenter sur la base de code actuelle. De plus, Git est un système de contrôle de version distribué, ce qui signifie que vous n'avez pas à toujours vous connecter à un serveur central pour effectuer votre travail.Vous trouverez ci-dessous les commandes Git essentielles qui vous aideront dans vos tâches quotidiennes. Les exemples simples vous donneront une compréhension des commandes, de sorte que vous puissiez facilement vous souvenir de la syntaxe lorsque vous devez les utiliser.

1. git ajouter

La commande git add vous permet de commencer à suivre les fichiers et dossiers de votre référentiel Git et de les déplacer vers la zone de transit. Vous devrez utiliser la commande git commit pour les rendre permanents sur vos instantanés historiques.

L'utilisation de la commande est facile. Vous pouvez choisir d'ajouter des fichiers et des dossiers individuellement ou utiliser l'opérateur Linux de type astérisque (*) glob pour les ajouter en groupes.

Prenons l'exemple ci-dessous :

Supposons, dans le cas ci-dessus, que nous ayons déjà ajouté le ReadMe.SMS. Mais le reste des fichiers n'a pas été ajouté.

Vérifions l'état :

Statut $git
Sur le maître de branche
Votre branche est à jour avec 'origin/master'.
Fichiers non suivis :
(utilisez 'git add … ' à inclure dans ce qui sera engagé)
fichier1.SMS
fichier2.SMS
dossier1/

Les fichiers et dossiers sont en rouge, ce qui signifie qu'ils ne sont pas suivis. Nous pouvons les ajouter en utilisant :

$git ajouter un fichier1.txt fichier2.txt dossier1/*

Si nous vérifions l'état maintenant :

Statut $git
Sur le maître de branche
Votre branche est à jour avec 'origin/master'.
Modifications à valider :
(utilisez 'git reset HEAD … ' pour désinstaller)
nouveau fichier :   fichier1.SMS
nouveau fichier :   fichier2.SMS
nouveau fichier :   dossier1/fichier3.SMS
nouveau fichier :   dossier1/fichier4.SMS

La commande git add a ajouté les fichiers à la zone de transit. Les fichiers sont conservés dans la zone de transfert avant de les rendre permanents via le processus de validation.

2. branche git

Sur Git, le branchement est facile. Dans d'autres systèmes de contrôle de version, c'était une opération coûteuse. Mais les algorithmes Git sont optimisés pour le branchement. Vous pouvez donc utiliser la commande git branch chaque fois que vous souhaitez créer une ligne de développement distincte sans vous soucier des performances.

Regardons l'exemple suivant.

Statut $git
Sur le maître de branche
Votre branche est à jour avec 'origin/master'.
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
nouveau fichier :   fichier1.SMS
nouveau fichier :   fichier2.SMS
nouveau fichier :   dossier1/fichier3.SMS
nouveau fichier :   dossier1/fichier4.SMS

Notez que nous sommes 'Sur branche maître'. Lorsque vous créez un nouveau projet, vous vous retrouvez dans la branche master. Vous pouvez également utiliser la commande git branch -a pour savoir sur quelle branche vous vous trouvez :

$git branche -a
* Maître

Ce qui précède vous dit qu'il n'y a qu'une seule branche appelée 'master' et l'astérisque (*) signifie que vous êtes sur cette branche.

Créons une nouvelle branche appelée 'testing' :

test de branche $git

Nous pouvons maintenant vérifier à nouveau les branches :

$git branche -a
* Maître
essai

Même si nous sommes toujours sur la branche 'master', on peut aussi voir la nouvelle branche 'testing' qui a été créée. La branche 'testing' est une réplique de la branche 'master'.

3. git caisse

La commande git checkout vous amène à une branche, vous pouvez donc travailler sur les ressources qui s'y trouvent. Vous pouvez considérer les branches comme des rivières et des ruisseaux. Avec une branche, vous créez un nouveau flux. Avec la commande checkout, vous accédez à ce flux.

Vérifions la branche 'testing' de l'exemple précédent :

test de paiement $git
Passé à la branche « test »

Maintenant, vérifions à nouveau le statut et les branches :

Statut $git
Sur les tests de branche
rien à valider, répertoire de travail propre
$git branche -a
Maître
* test

Vous pouvez voir dans la branche git -une commande que nous avons déplacée vers la branche testing.

4. git clone

La commande git clone vous permet de faire une copie de n'importe quel référentiel Git. Dès que vous clonez un référentiel, le nouveau dossier cloné commencera à suivre les modifications localement. Comme Git est distribué, un clone est un référentiel Git entièrement autonome.

Afin de montrer comment fonctionne le clonage, créons un nouveau dépôt :

$mkdir dir1
$cd dir1
$mkdir monprojet
$cd monprojet/
$git init
Dépôt Git vide initialisé dans /dir1/myproject/.git/
$touch Lisez-moi.SMS
$git commit -m 'Initialiser mon dépôt'
[master (root-commit) 5a0bd75] Initialiser mon référentiel
1 fichier modifié, 0 insertions(+), 0 suppressions(-)
mode de création 100644 Lisez-moi.SMS

Dans l'exemple ci-dessus, nous avons créé un référentiel Git appelé 'myproject' dans le dossier 'dir1'. Supposons qu'il s'agisse de notre référentiel principal. Maintenant, nous voulons en faire une copie et travailler ailleurs.

Créons un répertoire appelé 'dir2' et clonons le référentiel 'myproject'. Nous utilisons le clone git

pour cloner 'myproject' :

$mkdir dir2
$cd dir2
$git clone /dir1/myproject/
Clonage dans 'myproject'…
Fini.
$ls
mon projet

La commande git clone fonctionne également avec une URL.

$git clone https://github.fr/test/test.git

Vous pouvez également modifier le nom du clone en le spécifiant après l'adresse du référentiel Git :

$git clone https://github.fr/test/test.git mon test

5. git commit

La commande git commit est exécutée après la commande git add. Dans notre exemple git add, nous avions ajouté les fichiers pour le suivi, mais nous ne l'avions pas validé dans le référentiel Git. Le suivi reste local jusqu'à ce qu'un commit soit effectué. Lorsque vous validez les modifications, elles font partie de l'enregistrement permanent.

Ci-dessous, nous exécutons le git commit -m commander:

$git commit -m 'Valider mes fichiers et dossiers'
[master 3ef57b3] Valider mes fichiers et dossiers
4 fichiers modifiés, 0 insertions(+), 0 suppressions(-)
créer le mode 100644 fichier1.SMS
créer le mode 100644 fichier2.SMS
mode de création 100644 dossier1/fichier3.SMS
mode de création 100644 dossier1/fichier4.SMS

Si vous n'utilisez pas l'option -m pour mettre un commentaire, Git ouvrira votre éditeur de texte par défaut et le demandera. Les commentaires sont considérés comme une bonne pratique de contrôle de version. Alors mettez toujours des commentaires significatifs dans votre commit.

6. git configuration

La commande git config vous permet de configurer diverses options pour votre référentiel git. Par exemple, vous pouvez utiliser le git config -global commande pour obtenir et définir votre utilisateur.nom et utilisateur.e-mail.

Voici comment définir les valeurs :

$ git config --utilisateur global.nom 'Zak H'
$ git config --utilisateur global.email [email protected]

Voici comment vérifier les valeurs :

$git config --utilisateur global.Nom
Zak H
$git config --utilisateur global.e-mail
[email protected]

7. git diff

La commande git diff vous aide à voir les différences entre les fichiers et les dossiers. Si vous apportez des modifications à un fichier, c'est un outil utile pour évaluer rapidement les modifications que vous avez apportées.

Supposons que nous commencions notre travail avec un fichier ReadMe.txt avec deux lignes. Ensuite, nous nous débarrassons de la deuxième ligne et ajoutons une troisième ligne.

Maintenant, si nous exécutons la commande diff, elle affichera les différences entre la version validée et la version modifiée locale dans la zone de transit. Voici à quoi cela ressemblera :

$git diff
diff --git a/ReadMe.txt b/Lisez-moi.SMS
indice 9475ddc… 1804904 100644
--- a/Lisez-moi.SMS
+++ b/Lisez-moi.SMS
@@ -1,2 +1,2 @@
Ligne 1 : Ma première ligne
-Ligne 2 : Ma deuxième ligne
+Ligne 3 : Ma TROISIÈME ligne

La ligne 1 est inchangée (blanc), la ligne 2 supprimée (rouge) et la ligne 3 ajoutée (vert).
Vous pouvez utiliser la commande diff pour trouver également des différences entre des commits particuliers.

8. git chercher

La commande git fetch obtient les dernières ressources de l'origine spécifiée.

Regardons un exemple. Supposons que vous ayez la condition suivante :

dir1/monprojet
dir2/myproject (cloné)

Le dossier 'dir2/myproject' est cloné à partir de 'dir1/myproject'. Maintenant, si quelqu'un a validé des modifications dans 'dir1/myproject', vous pouvez obtenir ces modifications comme celle-ci depuis 'dir2/myproject' :

$git récupère l'origine
remote : Comptage d'objets : 2, terminé.
remote : Compression d'objets : 100 % (2/2), terminé.
distant : Total 2 (delta 0), réutilisé 0 (delta 0)
Déballage des objets : 100% (2/2), terminé.
Depuis /dir2/… /dir1/myproject
5a0bd75… 1713734  maître     -> origine/maître

Il est important de se rappeler que la commande git fetch ne fusionne pas les modifications. Pour la récupération et la fusion automatiques, utilisez la commande git pull. Alors vous vous demandez peut-être pourquoi utiliser cette commande en premier lieu. Il peut y avoir des options Git avancées où vous obtenez toutes les modifications de votre serveur d'origine, puis n'appliquez les modifications que de manière sélective à certains fichiers. La commande git fetch vous permet d'y parvenir. Cependant, c'est un sujet avancé que vous pouvez trouver dans la documentation de git fetch.

9. git grep

La commande git grep vous permet de rechercher des informations dans votre arborescence Git. Voici un exemple de recherche du mot 'Line' dans notre référentiel git. L'option -n ou --line-number affiche les numéros de ligne où Git trouve une correspondance :

$git grep -n Ligne
Lisez-moi.txt:1:Ligne 1 : Ma première ligne
Lisez-moi.txt:2:Ligne 3 : Ma TROISIÈME ligne

Vous pouvez lancer une recherche similaire pour le nombre de fois où la correspondance est là avec l'option -c ou --count :

git grep -c Ligne
Lisez-moi.txt:2

La raison de l'utilisation de git grep sur Linux grep est que git grep est plus rapide pour les référentiels git.

dix. git log

La commande git log vous montre l'historique des commits.

journal $git
commettre 171373479fc309846ef605fbe650933767afd0fb
Auteur : Zak H
Date :   Mer 21 nov. 20:26:32 2018 -0800
Nouveaux fichiers ajoutés
commettre 5a0bd759506d20b2b989873258bf60d003aa3d36
Auteur : Zak H
Date :   Mer 21 nov. 18:48:35 2018 -0800
Initialiser mon référentiel

Vous pouvez également utiliser l'option --oneline pour voir une version abrégée. La version abrégée est plus facile à suivre.

$git log --oneline
1713734 Nouveaux fichiers ajoutés
5a0bd75 Initialiser mon référentiel

11. git fusionner

La commande git merge fusionne les branches.

Créons un nouveau dépôt avec 'main' puis créons une branche 'test'.

$mkdir monprojet
$cd monprojet
$git init
Dépôt Git vide initialisé dans /git_essentials/myproject/.git/
$touch Lisez-moi.SMS
$git ajouter -A
$git commit -m 'Commit initial'
[master (root-commit) b31d4e1] Validation initiale
1 fichier modifié, 0 insertions(+), 0 suppressions(-)
mode de création 100644 Lisez-moi.SMS
test de branche $git
$git branche -a
* Maître
test
test de paiement $git
Basculé vers la branche 'test'

Dans la branche 'test', apportons quelques modifications :

$touch Fichier1.txt Fichier2.SMS
$Ls
Fichier1.txt Fichier2.txt  Lisez-moi.SMS
$git ajouter -A
$git commit -m 'Ajout de deux nouveaux fichiers'
[test 7e11910] Ajout de deux nouveaux fichiers
2 fichiers modifiés, 0 insertions(+), 0 suppressions(-)
créer le mode 100644 Fichier1.SMS
créer le mode 100644 Fichier2.SMS

Nous avons ajouté deux fichiers au test.

$git branche -a
Maître
* test
$ls
Fichier1.txt Fichier2.txt  Lisez-moi.SMS
maître de caisse $git
Basculé vers la branche 'master'
$git branche -a
* Maître
test
$ls
Lisez-moi.SMS

Nous voyons d'après ce qui précède, que File1.txt et Fichier2.txt existe dans la branche 'test', mais pas dans 'master'.

Fusionnons maintenant.

Test de fusion $git
Mise à jour de b31d4e1… 7e11910
Avance rapide
Fichier1.txt | 0
Fichier2.txt | 0
2 fichiers modifiés, 0 insertions(+), 0 suppressions(-)
créer le mode 100644 Fichier1.SMS
créer le mode 100644 Fichier2.SMS
$ls
Fichier1.txt Fichier2.txt  Lisez-moi.SMS
$git branche -a
* Maître
test

Maintenant, nous avons 'Fichier1.txt' et 'Fichier2.txt' dans la branche 'master' aussi.

Remarque : Considérez la fusion comme une opération d'extraction. Vous devez être dans la branche dans laquelle vous souhaitez fusionner. Dans ce cas, vous êtes dans la branche 'master' tirant les modifications de la branche 'test'.

12. git mv

Le git mv est une commande de raccourci pour exécuter les commandes git add et git rm. Il peut être utilisé pour renommer des fichiers.

Voici un exemple:

$git mv Lisez-moi.txt Lisez-moi.Maryland
Statut $git
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
renommé :    Lisez-moi.txt -> Lisez-moi.Maryland

13. git tirer

La commande git pull ressemble beaucoup à la commande git fetch, sauf que la fusion se fait automatiquement.

Voici un exemple d'exécution de git pull origin comme celui de git fetch (nous exécutons une requête d'extraction du clone pour obtenir les modifications du référentiel Git d'origine) :

$git pull origine
remote : Comptage d'objets : 3, terminé.
remote : Compression d'objets : 100 % (2/2), terminé.
distant : Total 3 (delta 0), réutilisé 0 (delta 0)
Déballage des objets : 100% (3/3), terminé.
Depuis /LearnGIT/git_essentials/myproject
7e11910… e67f932  maître     -> origine/maître
Mise à jour 7e11910… e67f932
Avance rapide
Fichier1.txt               | 1 +
Fichier2.txt               | 1 +
Fichier3.txt               | 1 +
Lisez-moi.txt => Lisez-moi.md | 0
4 fichiers modifiés, 3 insertions (+)
créer le mode 100644 Fichier3.SMS
renommer ReadMe.txt => Lisez-moi.md (100%)

Vous pouvez voir que les modifications ont été téléchargées à partir de l'origine et fusionnées dans le clone.

14. git pousser

La commande git push est utilisée pour envoyer les modifications aux référentiels distants. Voici un exemple d'exécution de la commande push :

$git push origin master
Compter les objets : 2, terminé.
Compression delta utilisant jusqu'à 4 threads.
Compression d'objets : 100 % (2/2), terminé.
Objets d'écriture : 100 % (2/2), 242 octets | 0 octet/s, terminé.
Total 2 (delta 1), réutilisé 0 (delta 0)
Vers /LearnGIT/git_essentials/myproject
e67f932… 90dc546  maître -> maître

La commande git push origin master envoie des modifications à la branche 'master' de l'origine (le référentiel Git que vous avez cloné) à partir de la branche 'master' du référentiel cloné. Visuellement, le push ressemble à ceci :

cloné/maître -> origine/maître

15. git rebase

La commande git rebase vous aide à changer la base des branches. Dans une fusion générale, quelque chose comme ceci se produit :

La branche test a été fusionnée dans la branche 'master' pour créer un nouveau commit.

Dans un rebase, voici ce qui se passe :

Les modifications de la liste des modifications E et F sont recalculées et verrouillées à la fin de la branche principale. Le rebasage permet de simplifier les branches.

Supposons que nous ayons cette situation dans la branche 'master' :

$ git log --oneline
7f573d8 Commit C : ajout c.SMS
795da3c Commit B : ajouté b.SMS
0f4ed5b Commit A : a ajouté un.SMS

Et une branche de fonctionnalité :

$ git log --oneline
8ed0c4e Commit F : modifié b.SMS
6e12b57 Commit E : modifié un.SMS
795da3c Commit B : ajouté b.SMS
0f4ed5b Commit A : a ajouté un.SMS

Si nous rebasons, nous obtenons git rebase master :

$ git checkout
Basculé vers la branche « fonctionnalité »
$ git rebase master

Tout d'abord, rembobinez la tête pour rejouer votre travail par-dessus…

Application : Commit E : modifié un.SMS
Candidature : Commit F : modifié b.SMS
Puis fusionnez 'feature' dans 'master'.
$ git checkout maître
Basculé vers la branche 'master'
$ git merge fonctionnalité
Mise à jour 7f573d8… 9efa1a3
Avance rapide
une.txt | 1 +
b.txt | 1 +
2 fichiers modifiés, 2 insertions (+)

Maintenant, si vous accédez à la fois à la branche "master" et à la branche "feature", vous verrez les mêmes journaux :

$ git log --oneline
9efa1a3 Commit F : modifié b.SMS
8710174 Commit E : modifié un.SMS
7f573d8 Commit C : ajout c.SMS
795da3c Commit B : ajouté b.SMS
0f4ed5b Commit A : a ajouté un.SMS

Le rebasage les a écrasés ensemble.

Remarque : N'utilisez jamais le rebasage dans les référentiels publics, car les développeurs rencontreront des problèmes de fusion majeurs.

16. télécommande git

La commande git remote vous permet de définir un serveur distant pour votre référentiel. Dans une situation de clonage, le référentiel source devient automatiquement le référentiel distant.

Par example:

$pwd
/LearnGIT/git_essentials/test
$git distant -v
origin  /LearnGIT/git_essentials/myproject (récupérer)
origin  /LearnGIT/git_essentials/myproject (push)

Ce qui précède montre que le serveur distant pour 'test' est un autre dossier appelé 'myproject'. La raison en est que 'test' a été cloné pour mon projet.

Mais le serveur distant n'a pas besoin d'être local. Vous pouvez avoir quelque chose comme ceci avec une URL :

$git distant -v
origine https://github.com/zakh/myproject (récupérer)
origine https://github.com/zakh/myproject (pousser)

Vous pouvez configurer un référentiel distant git en utilisant la commande git remote add :

$git distant ajouter l'origine https://github.com/zakh/monprojet

Cela connectera votre repo à l'origine afin que vous puissiez récupérer et pousser.

17. git réinitialiser

Le git reset vous permet de désinstaller les fichiers ajoutés.

Disons que vous avez ajouté le fichier 'test.txt' dans votre référentiel :

Test de $toucher.SMS
$git ajouter -A
Statut $git
Sur le maître de branche
Votre branche est à jour avec 'origin/master'.
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
nouveau fichier :   test.SMS

Cependant, vous décidez que vous ne voulez pas suivre 'test.txt' plus. Vous pouvez utiliser le git reset Head commande pour désinstaller le fichier :

$git reset HEAD test.SMS

Si vous vérifiez le statut, le fichier est à nouveau non suivi :

Statut $git
Sur le maître de branche
Votre branche est à jour avec 'origin/master'.
Fichiers non suivis :
(utilisez 'git add … ' à inclure dans ce qui sera engagé)
test.SMS

Le fichier 'test.txt' n'est plus suivi.

18. git revenir

La commande git revert vous permet d'inverser les modifications en utilisant le numéro de hachage de validation.

$echo 'Test 1' >> MonFichier.SMS
$git ajouter -A
$git commit -m 'Changement ajouté 1'
[master 78a8277] Ajout du changement 1
2 fichiers modifiés, 1 insertion (+)
mode de création 100644 MonFichier.SMS
créer le mode 100644 test.SMS
$cat MonFichier.SMS
Essai 1
$echo 'Test 2' >> MonFichier.SMS
$git ajouter -A
$git commit -m 'Changement ajouté 2'
[master a976e9c] Ajout du changement 2
1 fichier modifié, 1 insertion (+)
$cat MonFichier.SMS
Essai 1
Essai 2
$git log --oneline
a976e9c Ajout du changement 2
78a8277 Ajout du changement 1
90dc546 Ajout d'un fichier
e67f932 Ajout de nouveaux fichiers
7e11910 Ajout de deux nouveaux fichiers
b31d4e1 Validation initiale

Nous avons créé un 'MyFile.txt' et a validé deux modifications, le fichier a donc les lignes 'Test 1' et 'Test 2'. Mais nous avons décidé que nous ne voulions pas du deuxième commit. Nous avons donc trouvé le hachage de validation (a976e9c) pour cela. Nous pouvons utiliser le git revert pour se débarrasser du commit :

$git revenir a976e9c
[master 4f270e7] Rétablir 'Modification ajoutée 2'
1 fichier modifié, 1 suppression(-)
$git log --oneline
4f270e7 Rétablir 'Modification ajoutée 2'
a976e9c Ajout du changement 2
78a8277 Ajout du changement 1
90dc546 Ajout d'un fichier
e67f932 Ajout de nouveaux fichiers
7e11910 Ajout de deux nouveaux fichiers
b31d4e1 Validation initiale
$cat MonFichier.SMS
Essai 1

Nous voyons qu'un nouveau hachage de validation a été créé qui a annulé la validation de la ligne 'Test 2'. Le fichier n'a plus que la ligne 'Test 1' maintenant.

19. git rm

La commande git rm configure les fichiers pour les suppressions futures. Il met les fichiers à supprimer dans la zone de transit.

$git rm test.SMS
rm' test.SMS'
Statut $git
Sur le maître de branche
Votre branche est en avance sur 'origin/master' de 3 commits.
(utilisez 'git push' pour publier vos commits locaux)
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
supprimé :    test.SMS

Vous devez valider les modifications pour que la suppression prenne effet.

20. cache de git

La commande git stash vous permet d'abandonner temporairement un travail que vous n'êtes pas encore prêt à valider.
Supposons que vous travaillez dans un référentiel avec les fichiers suivants :

$ls
John.txt   Marie.SMS
Vous souhaitez modifier ces fichiers pour qu'ils soient davantage basés sur des projets. Donc tu commences par :
$git mv Jean.txt FichierProjet1.SMS
$ls
Marie.txt       ProjectFile1.SMS
Statut $git
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
renommé :    John.txt -> FichierProjet1.SMS

En plein changement de nom et de mise à jour de 'John.txt' à 'ProjectFile1.txt', vous recevez une demande pour modifier quelque chose dans le projet. Mais vous n'êtes pas prêt à soumettre 'ProjectFile1.SMS'. Alors tu le caches.

$git cachette

Répertoire de travail enregistré et état de l'index WIP sur le maître : f0b5a01 Init John et Mary

HEAD est maintenant à f0b5a01 Init John et Mary

$ls
John.txt   Marie.SMS

Votre environnement de travail local est de retour à l'endroit où vous étiez avant d'apporter vos modifications basées sur le projet. Après, s'occuper de l'interruption, au lieu de retourner à 'John.txt', vous décidez de travailler sur le 'Mary.txt' maintenant :

$git mv Marie.txt FichierProjet2.SMS
Statut $git
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
renommé :    Marie.txt -> FichierProjet2.SMS
$ls
John.txt       ProjectFile2.SMS

Vous êtes à nouveau interrompu et vous planquez votre nouveau travail sur 'Mary.SMS':

$git cachette
Répertoire de travail enregistré et état de l'index WIP sur le maître : f0b5a01 Init John et Mary
HEAD est maintenant à f0b5a01 Init John et Mary
$ls
John.txt   Marie.SMS

Une fois le travail d'interruption terminé, vous vérifiez la liste de cache :

liste de cache $git
stash@0 : WIP sur le maître : f0b5a01 Init John et Mary
stash@1 : WIP sur le maître : f0b5a01 Init John et Mary

Vous avez deux travaux en cours (WIP) dans la réserve. La première fois que vous ouvrez la cachette, vous obtenez le dernier 'Mary.txt' change :

$git cachette pop
Enlever Marie.SMS
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
nouveau fichier :   ProjectFile2.SMS
Modifications non préparées pour la validation :
(utilisez 'git add/rm … ' pour mettre à jour ce qui sera engagé)
(utilisez 'git checkout -- … ' pour rejeter les modifications dans le répertoire de travail)
supprimé :    Marie.SMS
Refs/cache abandonnés@0 (9b77a6b75e4e414fb64de341668c812d3d35150c)

La deuxième fois que vous ouvrez la cachette, vous obtenez le 'John.Modifications liées à txt :

$git cachette pop
Supprimer Jean.SMS
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour mettre en scène)
nouveau fichier :   ProjectFile1.SMS
nouveau fichier :   ProjectFile2.SMS
Modifications non préparées pour la validation :
(utilisez 'git add/rm … ' pour mettre à jour ce qui sera engagé)
(utilisez 'git checkout -- … ' pour rejeter les modifications dans le répertoire de travail)
supprimé :    Jean.SMS
supprimé :    Marie.SMS
Refs/cache abandonnés@0 (1e1968854fb5ca4d609e577822dc3280dbf928f6)
$ls
FichierProjet1.txt   ProjectFile2.SMS

Et vous avez votre travail en cours 'ProjectFile1.txt' et 'ProjectFile2.txt' en arrière.

Ainsi, la commande git stash vous aide à ranger votre travail afin que vous puissiez y revenir plus tard.

21. statut git

La commande git status affiche la différence entre les fichiers actuels et le commit HEAD.

Voici un exemple:

Statut $git
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour désinstaller)
renommé :    Fichier2.txt -> Fichier3.SMS
Modifications non préparées pour la validation :
(utilisez 'git add … ' pour mettre à jour ce qui sera engagé)
(utilisez 'git checkout -- … ' pour rejeter les modifications dans le répertoire de travail)
modifié :   Fichier1.SMS

Cela montre que 'File2.txt' est renommé en 'Fichier3.txt' qui est prêt pour la validation, mais les modifications dans 'File1.txt' n'est pas encore dans la zone de transit.

Alors, on ajoute tout :

$git ajouter -A

Maintenant, lorsque nous vérifions le statut :

Statut $git
Sur le maître de branche
Modifications à valider :
(utilisez 'git reset HEAD … ' pour désinstaller)
modifié :   Fichier1.SMS
renommé :    Fichier2.txt -> Fichier3.SMS

Nous voyons que tous les changements sont prêts pour la validation.

22. balise git

La commande git tag vous aide à créer des balises pour vos points historiques importants. Il est généralement utilisé pour configurer les numéros de version.

La commande git tag vous montrera les balises actuellement disponibles :

balise $git
v1.0
v2.0

Vous pouvez marquer avec le format de commande git tag :

$git balise v3.0

Afin de voir ce qu'il y a dans la balise, vous pouvez utiliser la commande git show :

$git afficher v1.0
commettre 61e9e8aa1b98b2a657303e6822b291d2374314b5
Auteur : Zak H
Date :   Jeu 22 novembre 01:06:42 2018 -0800
Premier commit
diff --git a/1.txtb/1.SMS
nouveau mode de fichier 100644
indice 0000000… e69de29

Vous pouvez également marquer à l'aide d'un hachage de validation et de la balise git au format de commande :

$git log --oneline
374efe9 Fichier modifié
a621765 Ajouter
6d6ed84 Deuxième validation
61e9e8a  Premier commit
$git balise v4.0 a621765
$git afficher v4.0
commettre a6217650a2c7b2531ecb9c173ba94bd4b3ba7abd
Auteur : Zak H
Date :   Jeu 22 novembre 01:15:55 2018 -0800
Ajouter
diff --git a/1.txtb/1.SMS
indice e69de29… 587be6b 100644
--- a/1.SMS
+++ b/1.SMS
@@ -0,0 +1 @@

En conclusion

Pour toute commande, vous pouvez utiliser git -h pour obtenir plus d'informations.

Une étude plus approfondie

  • https://git-scm.com/docs
Tutoriel Shadow of the Tomb Raider pour Linux
Shadow of the Tomb Raider est le douzième ajout à la série Tomb Raider - une franchise de jeux d'action-aventure créée par Eidos Montréal. Le jeu a ét...
Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...