Что означают два плюсовых знака в значении git diff?

Я делаю 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 ) {

Что это значит? Я googled, и этот результат на самом деле не объясняет это. Я посмотрел на man, и один пример, который я нашел, тоже не объясняет:

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.

Что это значит? Я внес изменения в файл, который превышает 50% от предыдущей версии. Это связано с переписыванием файла? То, что произошло, когда я его совершил.

Ответ 1

Эти строки добавляются со времени последней версии.

На странице руководства:

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

В приведенном выше примере вывод, сигнатура функции была изменена с оба файла (следовательно, два - удаление из файлов file1 и file2, плюc++ в означает, что одна добавленная строка не отображается ни в файле file1, ни в file2). Кроме того, восемь других строк одинаковы из файла1, но не появляются в файле2 (следовательно, префикс {plus}).

См. руководство пользователя diff:

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

Ответ 2

Вывод ++ в формате diff выводится из "объединенный diff" , который является форматом по умолчанию для git diff при отображении слияний ( или при использовании опций -c, -cc или -m)

При просмотре комбинированного diff, если два файла, которые вы сравниваете, имеют линию, отличную от того, с чем они были объединены, вы увидите ++ для представления:

одна добавленная строка не отображается ни в файле file1, ни в файле2