Certaines commandes Git commit gammes et une syntaxe valide est pour séparer les deux noms de commit deux points , et une autre syntaxe utilise trois points
.
Quelles sont les différences entre les deux ?
Certaines commandes Git commit gammes et une syntaxe valide est pour séparer les deux noms de commit deux points , et une autre syntaxe utilise trois points
.
Quelles sont les différences entre les deux ?
Lorsque vous êtes à l'aide de commettre des plages comme ..
et ...
avec git log
, la différence entre eux est que, pour les branches A et B,
git log A..B
vous montrera tous les commits que B n'a qu'Un n'a pas, alors que
git log A...B
va vous montrer à la fois les commits que a et B n'ont pas, et s'engage à ce que B a Une n'ont pas, ou en d'autres termes, il filtre tous les commits qui à la fois A et B de l'action, ce qui n'en montrer que les commits qui ils ne partagent.
Voici une représentation visuelle de l' git log A..B
. Le s'engage à ce que la branche B contient qui n'existent pas dans Un est ce qui est retourné par la validation de la gamme, et est mis en évidence en rouge dans le diagramme de Venn, et entourés en bleu dans la validation de l'arbre:
Ce sont les diagrammes git log A...B
. Notez que les commits qui sont partagés par les deux branches ne sont pas retournés par la commande:
...
Plus UtileVous pouvez faire le triple point de commettre éventail ...
plus utile dans un journal de commande en utilisant l' --left-right
option show qui s'engage appartiennent à la branche:
$ git log --oneline --decorate --left-right --graph master...origin/master
< 1794bee (HEAD, master) Derp some more
> 6e6ce69 (origin/master, origin/HEAD) Add hello.txt
Au-dessus de la sortie, vous allez voir les commits qui appartiennent master
avec le préfixe <
, tandis que les commits qui appartiennent origin/master
avec le préfixe >
.
Un jour, je pourrais ajouter mes propres explication de la façon dont la validation des plages de travail avec git diff
, mais pour l'instant, vous pourriez vouloir vérifier Git diff .. ? Quelle est la différence entre avoir .. et pas de points.
Cela dépend si vous êtes en utilisant un log
commande ou un diff
commande. Dans l' log
des cas, c'est dans l' man git-rev-list
documentation:
Cette opération de l'ensemble apparaît si souvent qu'il y est une abréviation pour. Lorsque vous avez deux commits r1 et r2 (nommé d'après la syntaxe expliqué dans La SPÉCIFICATION de RÉVISIONS ci-dessus), vous pouvez demandez pour les livraisons qui sont accessibles à partir de r2 à l'exclusion de ceux qui sont accessible à partir de r1 par "^r1 r2" et il peut être écrite comme "r1 r2..".
Une notation similaire "r1 r2..." est appelé symétrique différence de r1 et r2 et est définie comme "r1 r2 --pas $(git merge-base-tous les r1, r2)". Il est l'ensemble de commits qui sont accessible à partir d'un de r1 ou r2 mais pas des deux.
Ce qui signifie essentiellement que vous obtenez tous les commits qui sont dans l'une des deux branches, mais pas dans les deux.
Dans l' diff
des cas, c'est dans l' man git-diff
documentation:
git diff [--options] <commit>...<commit> [--] [<path>...] This form is to view the changes on the branch containing and up to the second <commit>, starting at a common ancestor of both <commit>. "git diff A...B" is equivalent to "git diff $(git-merge-base A B) B". You can omit any one of <commit>, which has the same effect as using HEAD instead.
Ce qui est un peu floue. Fondamentalement, cela signifie qu'il ne montre que les différences dans cette branche par rapport à une autre branche: il regarde une dernière commune de s'engager avec le premier committish vous l'a donné, et puis diffs la deuxième committish. C'est un moyen facile de voir quelles sont les modifications faites dans cette branche, par rapport à cette direction, sans prendre l'avis de modifications dans cette branche.
L' ..
est un peu plus simple: Dans l' git-diff
des cas, c'est la même chose qu'un git diff A B
et seulement de diff Un contre B. Dans l' log
de cas, il montre tous les commits qui sont dans B mais pas dans A.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.