2014-12-16 3 views
2

Я использую git в течение многих лет, но никогда не использовал команду diff, и я начал использовать ее сегодня, но я действительно не понимаю выход ... У меня был файл, и я удалил строки 3 и 4, а я получил следующий результат, но может кто-то помочь мне понять, что означает линии вывода в фиктивных терминах. спасибоИнтерпретация git diff output

$ git diff 
diff --git a/README.txt b/README.txt 
index 15827f4..8115e72 100644 
--- a/README.txt 
+++ b/README.txt 
@@ -1,4 +1,2 @@ 
this file 
adding like 
-line 3 
- 
+0

http://www.git-tower.com/learn/ebook/command-line/advanced-topics/diffs – isherwood

ответ

5

Строка 1: Команда, используемая для создания разницы.

Строка 2: git информация о базе данных для двух связанных файлов.

Линия 3 и 4: --- означает старый файл, +++ означает новый файл.

Строка 5: @@ означает, что диапазон линий представлен в следующем diff hunk. -1,4 означает строки 1-4 из старого файла, а +1,2 означает строки 1-2 в новом файле.

Остальные строки являются строками из исходных файлов с префиксом (пробел), - или +. линии находятся как в старых, так и в новых, - только в старом и + находятся только в новом.

Они предназначены для мнемоники: - являются «удалеными линиями», являются «неизменными линиями», а + являются «добавленными линиями».

0

Это просто унифицированный формат diff.

Это командная строка, создавшего этот вывод, только чтобы проверить любой специальный флаг:

diff --git a/README.txt b/README.txt 

Это является хэш-индекса и разрешения UNIX (0644) файла

index 15827f4..8115e72 100644 

В этих строках рассказывается, в каком файле указаны - и +:

--- a/README.txt 
+++ b/README.txt 

Здесь не так уж и полезно, но если вы применили diff к разным именам файлов (помните, что это общий формат), это может быть так.

Следит контекст, то есть сказать, какие строки называют разн (для файла -, линии 1, собр 4, для файла +, строка 1 Col 2):

@@ -1,4 +1,2 @@ 

контекст может также включают имя функции, в которой находится изменение, так что diff может работать, даже если вы дополнительно изменили файл, если точка, в которой можно применить изменение, может быть расположена.

Наконец, это ревизия:

this file 
adding like 
-line 3 
- 

, что означает, что вы удалили эти две строки, так как они находятся в (старый) файл -, но не в новой (нет + линия).