2015-04-21 16 views
10

Sto facendo un git diff e per la prima volta, vedo segni di doppio segno accanto alle linee.Cosa significano due segni più in un git diff?

++  if ($field_name == $selected) { 
++ 
++  echo "field_type: {$field['type']}\n"; 
++  echo "field_name: {$field_name}\n"; 
++ 
++  foreach ($node->$field_name as $language => $value) { 

Che cosa significa? L'ho cercato su google e lo this result non lo spiega veramente. Ho guardato man e un esempio che ho trovato non mi sembra spiegare neanche:

3. It is followed by two-line from-file/to-file header 

       --- a/file 
       +++ b/file 

      Similar to two-line header for traditional unified diff format, /dev/null is used to signal created or deleted files. 

Che cosa significa? Ho apportato modifiche al file superiori al 50% della versione precedente. Ha a che fare con una riscrittura di file? Questo è quello che è successo quando l'ho commesso.

risposta

9

Queste righe vengono aggiunte dall'ultima versione.

Dalla pagina manuale:

- static void describe(char *arg) 
-static void describe(struct commit *cmit, int last_one) 
++static void describe(char *arg, int last_one) 

Nell'esempio uscita sopra, la firma funzione è stata modificata da entrambi i file (quindi due - rimozioni sia da file1 e file2, oltre ++ per medio una riga che è stata aggiunta non appare né in file1 né in file2). Anche altre otto linee sono le stesse da file1, ma non appaiono nel file2 (quindi preceduti da {plus}).

Vedi manuale diff:

https://www.kernel.org/pub/software/scm/git/docs/v1.7.3/git-diff.html

7

Il ++ in uscita diff da una "combined diff", che è il formato predefinito per git diff quando mostra fonde (o quando si utilizzano le opzioni -c, -cc o -m)

Quando si visualizza un combinato diff, se i due file che si stanno confrontando hanno una linea che è diverso da quello che sono state fuse in, si vedrà la ++ di rappresentare:

una linea che è stata aggiunta non appare in entrambi i file1 file2 o