Что означают два плюсовых знака в значении 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