Git Succinctly Enregistrer les modifications

Le maintien d'une série de révisions "sûres" d'un projet est la fonction principale de tout système de contrôle de version. Git accomplit cela en enregistrant des instantanés d'un projet. Après avoir enregistré un instantané, vous pouvez revenir en arrière et afficher les anciennes versions, les restaurer et expérimenter sans craindre de détruire les fonctionnalités existantes..

Les utilisateurs de SVN et de CVS doivent noter que cela diffère fondamentalement de la mise en œuvre de leur système. Ces deux programmes enregistrent des différences pour chaque fichier, un enregistrement incrémentiel des modifications apportées à un projet. En revanche, les instantanés de Git ne sont que-des instantanés. Chaque commit contient la version complète de chaque fichier qu'il contient. Cela rend Git incroyablement rapide car l’état d’un fichier n’a pas besoin d’être généré à chaque demande:


Enregistrement d'instantanés complets, pas de différences entre les révisions

Ce chapitre présente le flux de travail de base pour la création d'instantanés à l'aide du répertoire de travail, de la zone de stockage intermédiaire et de l'historique validé. Ce sont les composants essentiels du contrôle de révision basé sur Git..


La zone de rassemblement

La zone d'activation de Git vous permet d'organiser un commit avant de l'ajouter à l'historique du projet.. Mise en scène est le processus de déplacement des modifications du répertoire de travail vers l'instantané intermédiaire.


Composants impliqués dans la préparation d'un commit

Il vous donne la possibilité de choisir et de choisir en relation modifications du répertoire de travail, au lieu de tout valider en une seule fois. Cela signifie que vous pouvez créer logique instantanés sur chronologique les uns. C'est une aubaine pour les développeurs, car cela leur permet de séparer les activités de codage des activités de contrôle de version. Lorsque vous écrivez des fonctionnalités, vous pouvez oublier d'arrêter de les valider en morceaux isolés. Ensuite, lorsque vous avez terminé votre session de codage, vous pouvez séparer les modifications en autant de commits que vous le souhaitez via la scène..

Pour ajouter des fichiers nouveaux ou modifiés du répertoire de travail à la zone de stockage intermédiaire, utilisez la commande suivante:

 git ajouter 

Pour supprimer un fichier d'un projet, vous devez l'ajouter à la zone de stockage intermédiaire, comme un fichier nouveau ou modifié. La commande suivante organisera la suppression et arrêtera le suivi du fichier, mais ne supprimera pas le fichier du répertoire de travail:

 git rm --cached 

Inspection de la scène

L'affichage du statut de votre référentiel est l'une des actions les plus courantes dans Git. La commande suivante affiche l’état du répertoire de travail et de la zone de transfert:

 statut git

Cela entraînera un message semblable au suivant (certaines sections peuvent être omises selon l'état de votre référentiel):

 # Sur branche maître # Modifications à valider: # # nouveau fichier: foobar.txt # # Modifications non mémorisées pour la validation: # # modifiées: foo.txt # # Fichiers non suivis: # # bar.txt

La première section, "Modifications à valider", est votre instantané par étape. Si tu devais courir git commit pour le moment, seuls ces fichiers seraient ajoutés à l'historique du projet. La prochaine section énumère suivi fichiers qui ne seront pas inclus dans le prochain commit. Enfin, "Fichiers non suivis" contient des fichiers de votre répertoire de travail qui n'ont pas été ajoutés au référentiel..

Génération de Diffs

Si vous avez besoin d'informations plus détaillées sur les modifications apportées à votre répertoire de travail ou à votre zone de stockage intermédiaire, vous pouvez générer un diff à l'aide de la commande suivante:

 git diff

Ceci produit un diff de chaque sans mise en scène changer dans votre répertoire de travail. Vous pouvez également générer un diff de tous mise en scène changements avec le --mis en cache drapeau:

 git diff --cached

Notez que l'historique du projet n'entre pas dans le champ d'application de statut git. Pour afficher des instantanés validés, vous aurez besoin de journal git.


Composants dans le cadre de statut git

Commet

Les validations représentent chaque version sauvegardée d'un projet, ce qui en fait l'unité atomique du contrôle de version basé sur Git. Chaque commit contient un instantané du projet, vos informations utilisateur, la date, un message de commit et un Somme de contrôle SHA-1 de tout son contenu:

 commit b650e3 entré31aba05fa62d6f6d064e7ca02b5ee1b Auteur: john  Date: mer. 11 janv. 00:45:10 2012 -0600 Message de validation

Cette somme de contrôle sert d'identifiant unique pour un commit, et cela signifie également qu'un commit sera jamais être corrompu ou altéré involontairement sans que Git le sache.

Étant donné que la zone de transfert contient déjà le jeu de modifications souhaité, la validation ne nécessite aucune intervention du répertoire de travail..


Composants impliqués dans la création d'un instantané

Pour valider l’instantané par étape et l’ajouter à l’historique de la branche actuelle, procédez comme suit:

 git commit

Vous serez présenté avec un éditeur de texte et invité à "un message de validation". Les messages de validation doivent prendre la forme suivante:

   

Git utilise la première ligne pour le formatage de la sortie du journal, l'envoi de correctifs par e-mail, etc. Il doit donc être bref tout en décrivant l'ensemble des modifications. Si vous ne parvenez pas à afficher la ligne récapitulative, cela signifie probablement que votre commit contient trop de modifications non liées. Vous devriez revenir en arrière et les séparer en commits distincts. Le résumé doit être suivi d’une ligne vierge et d’une description détaillée des modifications (par exemple, pourquoi vous avez apporté ces modifications, à quel numéro de ticket il correspond).


Inspection des commits

À l'instar du statut d'un référentiel, l'affichage de l'historique est l'une des tâches les plus courantes du contrôle de version de Git. Vous pouvez afficher les commits de la branche actuelle avec:

 journal git

Nous disposons maintenant des deux seuls outils nécessaires pour inspecter chaque composant d'un référentiel Git.


Sortie de statut git contre. journal git

Cela nous donne également un regroupement naturel de commandes:

  • Stage / Répertoire de travail: git ajouter, git rm, statut git
  • Histoire engagée: git commit, journal git

Configurations utiles

Git fournit une pléthore d’options de formatage pour journal git, quelques-uns sont inclus ici. Pour afficher chaque commit sur une seule ligne, utilisez:

 journal git --oneline

Ou, pour cibler l'historique d'un fichier individuel au lieu du référentiel entier, utilisez:

 journal git --oneline 

Filtrer la sortie du journal est également très utile lorsque votre historique dépasse le nombre de commits. Vous pouvez utiliser ce qui suit pour afficher les commits contenus dans mais pas dans . Les deux arguments peuvent être un ID de validation, un nom de branche ou une balise:

 journal git 

Enfin, vous pouvez afficher un diffstat des modifications dans chaque commit. C'est utile pour voir quels fichiers ont été affectés par un commit particulier.

 git log --stat

Pour visualiser l’historique, vous pouvez également consulter le gitk commande, qui est en fait un programme distinct dédié aux branches graphiques. Courir git aide gitk pour plus de détails.


Marquage des commits

Les balises sont de simples pointeurs d'engagement, et elles sont extrêmement utiles pour ajouter des modifications importantes à vos favoris, telles que les publications publiques. le tag git Cette commande peut être utilisée pour créer une nouvelle balise:

 git tag -a v1.0 -m "Version stable"

le -une L’option indique à Git de créer un annoté balise, qui vous permet d’enregistrer un message en même temps (spécifié avec -m).

Exécuter la même commande sans argument listera vos tags existants:

 tag git

Cette leçon représente un chapitre de Git Succinctly, un eBook gratuit de l'équipe de Syncfusion.