Dal momento che avevo già creato queste immagini, ho pensato che potrebbe valere la pena di utilizzarli in un'altra risposta, anche se la descrizione della differenza tra ..
(punto-punto) e ...
(punto-punto-punto) è essenzialmente uguale a manojlds's answer.
Il comando git diff
in genere¹ mostra solo la differenza tra gli stati dell'albero tra esattamente due punti nel grafico di commit. I ..
e ...
iscrizioni nel git diff
hanno i seguenti significati:
In altre parole, git diff foo..bar
è esattamente lo stesso come git diff foo bar
; entrambi ti mostreranno la differenza tra le punte dei due rami foo
e bar
. D'altra parte, git diff foo...bar
mostrerà la differenza tra la "base di unione" dei due rami e la punta di bar
. La "merge base" è solitamente l'ultimo commit in comune tra questi due rami, quindi questo comando mostrerà le modifiche apportate al lavoro su bar
, ignorando tutto ciò che è stato fatto su foo
nel frattempo.
Questo è tutto ciò che devi sapere sulle note ..
e ...
in git diff
. Tuttavia ...
... una fonte comune di confusione è che ..
e ...
significa cose leggermente diverse quando viene utilizzato in un comando come git log
che prevede una serie di commit come uno o più argomenti. (. Questi comandi tutti finiscono con git rev-list
per analizzare un elenco di commit da loro argomenti)
Il significato di ..
e ...
per git log
può essere mostrato graficamente come di seguito:
Quindi, git rev-list foo..bar
ti mostra tutto sul ramo bar
che non si trova anche sul ramo foo
. D'altra parte, git rev-list foo...bar
mostra tutti i commit in foo
obar
, ma non entrambi. Il terzo diagramma mostra solo che se si elencano i due rami, si ottengono i commit che sono in uno o entrambi.
Beh, trovo che tutti un po 'di confusione, in ogni caso, e credo che il commettere diagrammi grafico aiuto :)
¹ dico solo "tipicamente" da quando la risoluzione dei conflitti unire, per esempio, git diff
vi mostrerà un'unione a tre vie.
Mentre la questione non è un duplicato, [questa risposta] (http://stackoverflow.com/questions/5256249/git-diff-doesnt-show -enough/5257065 # 5257065) mostra graficamente il significato di '..' e' ... 'in' git diff' e i loro diversi significati in 'git log'. –
possibile duplicato di [Quali sono le differenze tra doppio punto ".." e punto triplo "..." in Git commit ranges?] (Http://stackoverflow.com/questions/462974/what-are-the -differences-between-double-dot-and-triple-dot-in-git-com) – chharvey