Table des matières
Les changements dans Git Ce ne sont pas les mêmes que dans les autres systèmes de gestion et de contrôle de version, puisqu'en ne stockant que ce qui a vraiment changé, cela réduit la taille des fichiers générés pour le contrôle et lui donne également une plus grande agilité.L'aspect qui contrôle tout cela est le indice qui a la responsabilité de savoir qui, quoi et quand de tous les changements effectués, c'est pourquoi après avoir ajouté les différents aspects à notre indice de branche l'appel est fait s'engager.
Qu'est-ce qu'un commit ?Dans Git Nous savons que pour ajouter un changement, nous devons faire un s'engager du même une fois qu'il a été ajouté à l'index du référentiel. Cependant, qu'est-ce qu'un s'engager exactement? Cette question ne se pose pas toujours à nous-mêmes puisque la façon dont nous Git gère cela est assez clair, mais un s'engager est la façon dont Git enregistre l'état actuel de l'index du référentiel et le stocke dans l'objet correspondant, de cette manière chaque s'engager elle est dérivée de la précédente et ainsi la structure qui ne subit pas de modifications peut être réutilisée.
La gestion des ressources qui rend cela si rapide est due aux comparaisons faites entre SHA1 Par conséquent, si les éléments de l'index ont le même hachage, ils ne continuent pas à approfondir leurs modifications car ils sont identiques et donc seuls les fichiers qui ont réellement changé sont pris en compte.
La manière dont le s'engage nous permet d'établir des structures hiérarchiques qui donnent la certitude d'obtenir l'origine de tous les changements enregistrés, donc si nous suivons les meilleures pratiques de Git Nous ne serons jamais perdus, grâce aux identifiants uniques, nous pouvons également être sûrs que si une fonctionnalité a créé un problème, elle peut être trouvée à l'endroit exact où elle a été incluse.
Nous avons commenté comment s'engage avoir un hachage dans SHA1 avec lequel ils peuvent être identifiés, il s'avère que ce hachage les rend également uniques et irremplaçables, c'est-à-dire si nous avons un s'engager et dans un autre référentiel le même hachage est trouvé afin que nous puissions savoir que c'est le même s'engager.
A cause de cela le s'engager est également considéré atomique, c'est-à-dire en tant qu'unité unique qui stocke indépendamment l'état de nombreux répertoires ou fichiers, avec cela nous pouvons nous référer au s'engager comme une unité au sein de notre référentiel et ainsi pouvoir traiter chacun comme un élément qui, bien que lié au précédent, est unique.
Bien que le hachage SHA1 sert d'identifiant unique pour le s'engager, sa structure de 40 caractères alphanumériques peut représenter un problème quand on veut communiquer avec un autre développeur et lui expliquer que s'engager nous parlons.
Noms relatifsPour résoudre ce problème, nous pouvons établir noms relatifs et plus facile à retenir pour s'engageCeux-ci ne remplacent pas le hasch, mais fonctionnent plutôt comme une sorte d'étiquette qui nous permet de les identifier de manière plus humaine.
Pour parler du dernier s'engager du branche on peut simplement se référer à DIRIGER, puisqu'il s'agira toujours de la dernière et la plus récente s'engagerCependant, comme nous n'allons pas toujours l'exiger, il suffit que nous utilisions les premiers caractères du hacher, bien qu'il ne soit pas toujours unique, donc en ajoutant plus de caractères, nous obtiendrons l'unicité correspondante.
Voyons ensuite la commande que nous devons utiliser pour réaliser cette dernière :
git log -1 --pretty = commit d'identifiant sur une ligne
Nous allons maintenant voir dans l'image suivante comment identifier un s'engager au sein de notre référentiel de test, pour cela nous allons dans un premier temps localiser quel est le SHA1 du DIRIGER et puis on va l'appeler par ses premiers caractères, voyons :
Avec l'exemple précédent, nous avons découvert un outil pour Git cela peut être très utile et c'est le commande de journal, c'est très puissant puisqu'il permet de localiser les différents s'engager de manière rapide et précise, cependant il a de nombreux paramètres et configurations qui peuvent être difficiles à mémoriser dans un premier temps, cependant pour l'utiliser on n'a pas besoin de tous les apprendre, on peut y aller petit à petit en s'habituant à son utilisation.
Si nous voulons voir l'historique des commits, procédez comme suit :
nom de branche git log
Avec cela, nous obtiendrons le informations détaillées sur l'historique de nôtre branche et ses s'engageVoyons à quoi cela ressemble dans notre console dans le référentiel de tests que nous avons :
On remarque alors comment le s'engage sont organisés du plus récent au plus ancien, cela permet de voir un peu la ligne historique des changements subis par le branche choisi pour afficher le journal historique.
Comme travailler sur la console est parfois un peu lourd, même si c'est très nécessaire, Git nous offre un outil qui nous permet de revoir l'histoire de s'engage graphiquement et est gitk n'est pas une sous-commande de Git comme par exemple log que nous avons déjà vu, mais c'est une commande indépendante et nous permet d'accéder à un plus grand détail de la branche et de son historique.
Pour l'utiliser, il suffit d'exécuter la commande suivante :
nom gitkBranch
Voyons à quoi ressemble son exécution dans la console :
Bien qu'il puisse sembler que rien ne s'est passé, nous aurons sous peu une fenêtre avec le graphique demandé pour le branche spécifié comme nous pouvons le voir dans la capture d'écran suivante :
AGRANDIR
Nous pouvons remarquer que nous avons un détail beaucoup plus important, en plus de l'amélioration de sa visualisation.Réfs Oui Symrefs appartenir à les références Oui références symboliques respectivement, le premier correspond à un identifiant SHA1 d'un objet dans le cadre objet de notre référentiel, par contre le second correspond indirectement à un objet, malgré son nom c'est aussi une référence.
Cette structure de références est très importante à connaître puisqu'elle nous permettra de comprendre l'organisation de notre annuaire de s'engage Oui branches dans Git, qui sont stockés dans le répertoire .git / réf.
Création d'une référence symboliqueSi nous voulons explicitement créer un référence symbolique il suffit d'utiliser la commande git symbolique-ref, et bien qu'il soit possible d'utiliser des noms comme DIRIGER pour ces références ce n'est pas conseillé car à la fin elles peuvent nous conduire à une confusion qui peut endommager notre référentiel.
Enfin, voyons à quoi ressemble l'exécution de cette commande lorsque nous l'appliquons à notre référentiel de test :
Un autre aspect intéressant de s'engage, c'est que nous pouvons travailler avec noms relatifsCela rend la recherche de plages de commit très simple, par exemple si nous voulons localiser ce qui existe entre les critiques d'une certaine période, nous pouvons le faire.
Pour y parvenir, nous n'avons qu'à utiliser le nom de la branche plus le symbole ^ et le numéro de révision. Par exemple maître ^ où nous nous référons à l'avant-dernier changement apporté au branche Maître.
Historique du référentielDe cette façon, nous pourrons parcourir toute l'histoire de notre référentiel, ce qui nous donne la possibilité d'accéder par rapport à la s'engage qui nous ont permis d'avoir l'actuelle, si nous suivons la structure maître 2 va nous emmener au deuxième père de s'engager, c'est-à-dire celui qui a donné la vie en parallèle, aussi avec ~ nous pouvons accéder au père du père de notre commit actuel, c'est-à-dire le grand-père, pour le mettre en quelque sorte dans la généalogie.
Un exemple peut être maître 2 ~ 3 Pour faire référence aux modifications historiques au sein de notre référentiel, si nous voulons obtenir le nom d'un commit relatif, nous devons simplement utiliser la commande suivante :
git rev-parse RelativeName
Cela renverra le SHA1 du s'engager auquel nous sommes arrivés. Voyons dans l'image suivante comment obtenir le nom du commit actuel depuis master et avec maître ~ le nom du premier parent du même qui serait le s'engager d'où on part :
Nous avons alors remarqué comment nous avons pu obtenir deux SHA1 différent et valide au sein de notre référentiel, en utilisant uniquement noms relatifs.
Avec cela, nous terminons ce tutoriel, nous avons introduit de nouveaux concepts de ce que le s'engage dans GitCela nous donne la possibilité de mieux comprendre les structures de nos référentiels, avec cela l'organisation semblera plus logique et ainsi nous pourrons être beaucoup plus efficaces lors de la gestion des changements au sein de notre code. La façon dont Git la gestion des différences le rend si spécial et c'est pourquoi il est devenu l'un des principaux gestionnaires de versions de la technologie d'aujourd'hui.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif