2016-07-21 13 views
0

Ich möchte zwei Versionen einer Datei (die auf verschiedenen Pfaden existieren) bei verschiedenen Commits in Git vergleichen. Ich will das diff nicht, ich möchte nur wissen, ob die Inhalte und Modi gleich sind. Die Dokumentation für Diff-Dateien zeigt keine Bedeutung für Rückgabewerte an. Ich sehe in git nichts Ähnliches wie cmp (1). Gibt es ein anderes Installationswerkzeug, um dies zu tun, oder haben Diff-Dateien Rückgabewerte, die das ausdrücken?Wie programmiere ich programmatisch Dateien in zwei Revisionen in Git?

+0

Ich nehme an, wenn die Dateien identisch sind, sollten sie den gleichen Blob sein. Enthält der Blob-Hash den Modus? –

Antwort

0

git ls-tree <commit> -- <path> Ausgänge

<mode> SP <type> SP <object> TAB <file>

<mode> ist der Dateimodus. <object> ist das sha1, das den Inhalt angibt.

Vergleichen Sie die Modi und Objekte.

<object> hier kann auf eine andere Weise

<commit>:<path>

So git rev-parse <commit>:<path> ausgeben kann die SHA1 des Blobs oder dem Baum benannt werden. Vergleichen wir die beiden sha1, können wir sehen, ob der Inhalt gleich ist oder nicht.

3

git diff --exit-code <commit> <commit> Ich glaube, Sie suchen. Seine fast auf der Unterseite in der docs https://git-scm.com/docs/git-diff

Oder

git diff --quiet <commit> <commit> Wenn Ihr rein Interesse an dem Exit-Code und nichts mehr (kein Konsolenausgabe)

Verwandte Themen