2015-04-21 11 views
10

Robię git diff i po raz pierwszy widzę podwójne znaki plus obok linii.Co oznaczają dwa znaki plus w 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) { 

Co to znaczy? Przeszukałem go, a this result tak naprawdę tego nie wyjaśnia. Spojrzałem na man a jeden przykład znalazłem nie wydaje się to wyjaśnić albo:

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. 

Co to znaczy? Wprowadziłem zmiany do pliku, które są większe niż 50% poprzedniej wersji. Czy ma to związek z ponownym zapisaniem pliku? Tak się stało, kiedy to popełniłem.

Odpowiedz

9

Te linie są dodawane od ostatniej wersji.

z podręcznika stronie:

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

w powyższym przykładzie wyjścia, podpis funkcja została zmieniona z oba pliki (stąd dwa - przeprowadzki zarówno z plik1 i plik2 plus ++ do średniej dodana jedna linia nie pojawia się w pliku file1 ani w pliku file2). Również osiem innych linii jest takich samych z pliku1, ale nie pojawia się w pliku2 (stąd przedrostek {plus}).

Zobacz diff Manual:

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

7

++ produkcji diff jest od "combined diff", który jest domyślnym formatem dla git diff kiedy pokazano scala (lub podczas korzystania z -c, -cc lub -m opcje)

Podczas przeglądania połączony diff, jeśli dwa pliki porównywane Posiadamy linię to inny czego zostały one połączone w, widać ++ do reprezentowania:

jeden wiersz, który został dodany nie pojawia się w żadnym plik1 plik2 lub