Es ist eine "imaginäre diff Option", verwendet, um den Leser, um anzuzeigen, dass es nicht nur die Ausgabe der von Lauf diff
Befehl. Zum Beispiel Repo in git eigener git:
$ git diff HEAD~1..HEAD | head
diff --git Documentation/git.txt Documentation/git.txt
index bd659c4..7913fc2 100644
--- Documentation/git.txt
+++ Documentation/git.txt
@@ -43,6 +43,11 @@ unreleased) version of Git, that is available from the 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
+* link:v2.10.0/git.html[documentation for release 2.10]
+
$
Der diff
Befehl selbst, wenn Sie es mit dem gleichen Dateinamen aufgerufen zweimal, würde keine Unterschiede zeigen. git
erstellt vermutlich temporäre Dateien, die zwei verschiedenen Versionen von Documentation/git.txt
entsprechen, und füttert sie an diff
- aber die Namen dieser temporären Dateien wären nicht nützlich. Ich denke, git diff
massiert die Ausgabe von diff
, um es für den Leser sinnvoller zu machen.
Tauchen in den git-Quellcode, hat diff.c
die Zeichenfolge "diff --git"
als String fest verdrahtet wörtliche:
strbuf_addf(&header, "%s%sdiff --git %s %s%s\n", line_prefix, meta, a_one, b_two, reset);
Und ein Blick in die Geschichte der diff.c
für die früheste Version, die die Zeichenfolge enthält:
$ git log -n 1 b58f23b3
commit b58f23b38a9a9f28d751311353819d3cdf6a86da
Author: Junio C Hamano <[email protected]>
Date: 2005-05-18 09:10:47 -0700
[PATCH] Fix diff output take #4.
This implements the output format suggested by Linus in
<[email protected]>, except the
imaginary diff option is spelled "diff --git" with double dashes as
suggested by Matthias Urlichs.
Signed-off-by: Junio C Hamano <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
$
Vermutlich ist <Pine.LNX...>
die Nachrichten-ID einer E-Mail-Nachricht in einer Mailing-Liste irgendwo. In jedem Fall macht diese Commit-Nachricht deutlich, dass diff --git
eine "imaginäre Diff-Option" ist.
This email message, zitiert von nos in einem Kommentar, scheint ein Teil der Diskussion zu sein, die dazu führte.
Es ist in der Tat verwirrend, wie git diese Befehle auf eine so seltsame Weise enthält. –
Die bestimmte Ausgabe wird hier hinzugefügt: https: //github.com/git/git/commit/b58f23b38a9a9f28d751311353819d3cdf6a86da und die Begründung dafür ist irgendwo hier vergraben: http://www.gelato.unsw.edu.au/archives/ git/0505/3812.html – nos
Jemand hat es entfernt, aber ich hatte ursprünglich ein "osx" -Tag, um anzuzeigen, dass dies das "diff" war, das mit macOS ausgeliefert wird, und die GNU-Tools könnten * diff * er sein. – JHZ