Comment dois-je google's git's .. syntaxe?


1

J'aimerais consulter la documentation de Git .. syntaxe qui est utilisée, par exemple, dans une commande comme git log master.. qui répertorie les commits dans ma branche et non dans le maître. J'aimerais savoir comment ils rédigent la documentation pour pouvoir l'expliquer de manière précise et succincte à mes collègues.

Voici les recherches que j'ai essayées

Les résultats sont tous très mauvais. Existe-t-il un meilleur moyen de rechercher de la documentation sur l'utilisation d'une syntaxe de ponctuation spécifique à une langue, comme celle de Git? ..?


3
Jonno

@ Jonno Malheureusement, la recherche de "git .." sur le symbole ne donne pas de résultats utiles. Googler pour "git dot" est plus utile. Googler "git double point" est encore mieux;)
DavidPostill

Réponses:


2

J'aimerais consulter la documentation de Git .. syntaxe

qui est utilisé, par exemple, dans une commande comme git log master..

Ils s'appellent Double point .. et Triple point ... Spécifications de la gamme.

Vous les voyez aussi appelés Syntaxe de la plage ou Syntaxe des points .

Recherche http://www.google.com pour aucun de ces termes retournera des résultats utiles.


Court résumé

git log A..B (deux points)

Bien que cette syntaxe ressemble à une "plage" de commits de A à B, elle est   en fait un coup de main pour git log ^A B:

  • affiche tous les commits accessibles depuis B; B lui-même est inclus
  • excluant ceux accessibles depuis A; A lui-même est exclu

Donc, étant donné l’historique suivant (avec les plus anciens commits à gauche,   le plus récent à droite):

*--*--*--A--*--*--*--B

git log A..B montrera tous les commits à la droite de A.

Notez que git log A.. est équivalent à git log A..HEAD.

journal git A ... B (trois points)

La page de manuel git-rev-list décrit ceci comme une notation spéciale pour   "différence symétrique".

C'est équivalent à git log A B --not $(git merge-base --all A B).

En clair, cela signifie "tous les commits qui sont accessibles depuis   soit A ou B mais pas des deux.

La source Git "range" ou "dot" syntaxe


Résumé détaillé

Double point

La spécification de plage la plus courante est la syntaxe à double point. Ce   demande fondamentalement à Git de résoudre une série de commits atteignables   d’un commit mais ne sont pas accessibles depuis un autre. Par exemple, disons   vous avez une histoire de commit qui ressemble à:

enter image description here

Vous voulez voir ce qui est dans votre branche de test qui n’a pas encore été   fusionné dans votre branche principale. Vous pouvez demander à Git de vous montrer un journal de   juste ceux qui s’engage avec maître..expérience - cela signifie «tout s’engage   accessible par une expérience qui n’est pas accessible par le maître. "   de concision et de clarté dans ces exemples, j’utiliserai les lettres du   valider des objets du diagramme à la place de la sortie de journal réelle dans   l'ordre dans lequel ils seraient affichés:

$ git log master..experiment
D
C

Si, au contraire, vous voulez voir le contraire - tout s’engage en   ne maitrisez pas cette expérience - vous pouvez inverser les noms des branches.   experience..master vous montre tout en master inaccessible depuis   expérience:

$ git log experiment..master
F
E

Ceci est utile si vous voulez garder la branche de test à jour   et prévisualisez ce que vous allez fusionner. Une autre utilisation très fréquente   Cette syntaxe consiste à voir ce que vous êtes sur le point de transmettre à une télécommande:

$ git log origin/master..HEAD

Cette commande vous montre les commits de votre branche actuelle qui ne sont pas   dans la branche principale de votre télécommande d’origine. Si vous exécutez un push git et   votre branche actuelle suit l'origine / le maître, les commits répertoriés par   git log origin / master..HEAD sont les commits qui seront transférés   au serveur. Vous pouvez également laisser un côté de la syntaxe pour avoir   Git assume la tête. Par exemple, vous pouvez obtenir les mêmes résultats que dans le   exemple précédent en tapant git log origin / master .. - Git substituts   HEAD si un côté est manquant.

Points multiples

La syntaxe à double point est utile en abrégé; mais peut-être que vous voulez   pour spécifier plus de deux branches pour indiquer votre révision, telles que   voir quels sont les commits dans l’une des nombreuses branches qui ne sont pas   branche sur laquelle vous êtes actuellement. Git vous permet de le faire en utilisant soit   le caractère ^ ou --pas avant toute référence à partir de laquelle vous ne   veulent voir les commits accessibles. Ainsi, ces trois commandes sont   équivalent:

$ git log refA..refB
$ git log ^refA refB
$ git log refB --not refA

C’est bien, car avec cette syntaxe, vous pouvez spécifier plus de deux   références dans votre requête, ce que vous ne pouvez pas faire avec le double point   syntaxe. Par exemple, si vous voulez voir tous les commits qui sont   accessible depuis refA ou refB mais pas depuis refC, vous pouvez taper l’un des   celles-ci:

$ git log refA refB ^refC
$ git log refA refB --not refC

Cela en fait un système de requête de révision très puissant qui devrait aider   vous déterminez ce qu'il y a dans vos branches.

Triple point

La dernière grande syntaxe de sélection de plage est la syntaxe à trois points, qui   spécifie tous les commits accessibles par l'un des deux   références mais pas par les deux. Revenons à l'exemple de commit   histoire en:

enter image description here

Si vous voulez voir ce qui est en master ou expérimenter mais pas en commun   références, vous pouvez exécuter

$ git log master...experiment
F
E
D
C

Encore une fois, cela vous donne une sortie normale du journal mais ne vous montre que le commit   informations pour ces quatre commits, apparaissant dans le traditionnel   commettre la commande de date.

Un commutateur commun à utiliser avec la commande log dans ce cas est   --left-right, qui indique le côté de la plage dans lequel se trouve chaque validation. Cela rend les données plus utiles:

$ git log --left-right master...experiment
< F
< E
> D
> C

Avec ces outils, vous pouvez beaucoup plus facilement laisser savoir à Git le ou les commits que vous souhaitez inspecter.

La source Git Tools - Sélection de révision


Merci. Je suppose que la difficulté consiste à savoir comment utiliser Google pour savoir comment ils s'appellent (pour pouvoir utiliser ce nom dans Google et découvrir comment ils sont utilisés).
dumbledad
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.