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:
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 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.
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
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..
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
.
statut git
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: johnDate: 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..
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).
À 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.
statut git
contre. journal git
Cela nous donne également un regroupement naturel de commandes:
git ajouter
, git rm
, statut git
git commit
, journal git
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.
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.