Ich habe eine Reihe von Übertragungen im Repository. Ich möchte eine Liste der Dateien sehen, die zwischen zwei Commits geändert wurden - von SHA1 à SHA2 .
Welchen Befehl soll ich verwenden?
Ich habe eine Reihe von Übertragungen im Repository. Ich möchte eine Liste der Dateien sehen, die zwischen zwei Commits geändert wurden - von SHA1 à SHA2 .
Welchen Befehl soll ich verwenden?
git diff --name-status [TAG|SHA1]
zeigt auch, welche Operationen an den Dateien durchgeführt wurden
Sie können auch Folgendes tun: git diff --name-only HEAD@{3} HEAD@{0} für genau die Commits, die Sie vergleichen wollen.
git diff --name-status [SHA1 [SHA2]]
ist wie --name-only, nur dass Sie ein einfaches Präfix erhalten, das Ihnen sagt, was mit der Datei passiert ist (geändert, gelöscht, hinzugefügt...)
git log --name-status --oneline [SHA1..SHA2]
ist ähnlich, aber Commits werden nach der Commit-Nachricht aufgelistet, so dass Sie sehen können, wann eine Datei geändert wurde.
wenn Sie daran interessiert sind, was mit bestimmten Dateien/Ordnern passiert ist, können Sie Folgendes anhängen -- <filename> [<filename>...]
zum git log
Version.
wenn Sie sehen wollen, was bei einem einzelnen Commit passiert ist, nennen Sie es SHA1, dann machen Sie
git log --name-status --oneline [SHA1^..SHA1]
Dateistatus-Flags:
Flagge
Name
Bedeutung
M
geändert
Die Datei wurde geändert
C
bearbeiten.
Die Datei wurde kopiert und geändert
R
umbenennen-bearbeiten
Die Datei wurde umbenannt und geändert
A
hinzugefügt.
Datei wurde hinzugefügt
D
gelöscht
Die Datei wurde gelöscht
U
unmerged
Datei hat Konflikte nach einer Zusammenführung
Ich habe zufällig git diff --name-status gesagt und es hat die "hinzugefügte Datei" angezeigt.
Für git log muss es zwei Punkte zwischen den SHAs haben, wie SHA1..SHA2, und der zweite SHA ist nicht optional, also sollte es so aussehen: git log --name-status --oneline [SHA1..SHA2]
Es scheint, dass niemand den Schalter erwähnt hat --stat
:
$ git diff --stat HEAD~5 HEAD
.../java/org/apache/calcite/rex/RexSimplify.java | 50 +++++++++++++++++-----
.../apache/calcite/sql/fun/SqlTrimFunction.java | 2 +-
.../apache/calcite/sql2rel/SqlToRelConverter.java | 16 +++++++
.../org/apache/calcite/util/SaffronProperties.java | 19 ++++----
.../org/apache/calcite/test/RexProgramTest.java | 24 +++++++++++
.../apache/calcite/test/SqlToRelConverterTest.java | 8 ++++
.../apache/calcite/test/SqlToRelConverterTest.xml | 15 +++++++
pom.xml | 2 +-
.../apache/calcite/adapter/spark/SparkRules.java | 7 +--
9 files changed, 117 insertions(+), 26 deletions(-)
Außerdem gibt es --numstat
$ git diff --numstat HEAD~5 HEAD
40 10 core/src/main/java/org/apache/calcite/rex/RexSimplify.java
1 1 core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java
16 0 core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
8 11 core/src/main/java/org/apache/calcite/util/SaffronProperties.java
24 0 core/src/test/java/org/apache/calcite/test/RexProgramTest.java
8 0 core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
15 0 core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
1 1 pom.xml
4 3 spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java
y --shortstat
$ git diff --shortstat HEAD~5 HEAD
9 files changed, 117 insertions(+), 26 deletions(-)
Das war wirklich nützlich! Ich wünschte, ich könnte einfach sagen git diffstatus master
oder ähnliches, die das oben genannte auslöst.
Sie können es vielleicht nicht zu einem Git-Alias machen, aber Sie können es definitiv in Ihre .bashrc einfügen.
Das größte Problem bei allen vorherigen Antworten ist, dass man in einen Pager geleitet wird, was extrem lästig ist, wenn man die Informationen, die man aus dem Repository herausholen will, nutzen möchte. Vor allem, wenn man ein Entwickler ist, der lieber die Geschäftslogik der Anwendung lernen möchte, die er entwickeln soll, anstatt Vim-Befehle zu lernen.
Die Verwendung von --no-pager behebt dieses Problem.
git --no-pager diff --name-only sha1 sha2
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Für eine Übergabe und ihre Eltern: stackoverflow.com/questions/424071/
1 Stimmen
Sie sollten den Titel der Frage ändern... Sie wollen nicht die geänderten Dateinamen auflisten... Sie wollen die Namen der geänderten Dateien auflisten. Beachten Sie, dass es möglich ist, die Namen von Dateien zu ändern, ohne deren Inhalt zu ändern.