Gibt es eine Möglichkeit, mit git log
oder einem anderen Befehl nur die Commits anzuzeigen, die nach der Zweigstellenerstellung hinzugefügt wurden?
usage: git log [<options>] [<since>..<until>] [[--] <path>...]
or: git show [options] <object>...
--quiet suppress diff output
--source show source
--decorate[=...] decorate options
Antworten:
Die vollständige Dokumentation finden Sie hier: https://www.kernel.org/pub/software/scm/git/docs/gitrevisions.html
Angenommen, Sie haben ein Repo, das so aussieht:
Überprüfen Sie den Repo-Status:
und für myBranch:
Angenommen, Sie befinden sich auf myBranch und möchten nur SEIT Master ändern. Verwenden Sie die Zwei-Punkt-Version:
Die Dreipunktversion bietet alle Änderungen von der Spitze des Masters bis zur Spitze von myBranch. Beachten Sie jedoch, dass das gemeinsame Commit B nicht enthalten ist:
Bitte beachten Sie :
git log
undgit diff
verhalten sich anders! Das Verhalten ist nicht genau umgekehrt, aber fast:Die Zwei-Punkt-Version zeigt also den Unterschied von der Spitze des Masters (dh D) zur Spitze von myBranch (Z). Die Dreipunktversion zeigt den Unterschied zwischen der Basis von myBranch (dh B) und der Spitze von myBranch (Z).
quelle
git log --oneline myBranch..master
, würde dir das gebenD
undC
?Ich war mit meiner ursprünglichen Antwort falsch. Sie möchten die doppelte Punktnotation:
Ich habe andere Ergebnisse erhalten als erwartet, also habe ich einen Test mit der folgenden Repo-Struktur durchgeführt:
Ich habe dann versucht
git log master..test
:Und dann
git log master...test
:Der doppelte Punkt zeigt also die Commits in,
test
aber nicht inmaster
(^master temp
) und der dreifache Punkt zeigt die Commits inmaster
AND,test
aber nicht in beiden.Die andere ausgezeichnete Antwort in dieser Frage hat es zuerst richtig gemacht und hat eine bessere Erklärung ( https://stackoverflow.com/a/24769534/1185838 ); Es sollte wahrscheinlich als Antwort anstelle von meiner markiert werden. Sie können auch auf diese Antwort verweisen ( https://stackoverflow.com/a/463027/1185838 ), die mir geholfen hat, den Unterschied zwischen Doppelpunkt- und Dreifachpunktnotation besser zu verstehen.
Entschuldigung für die falsche Antwort!
Alte Antwort - Falsch
Verwenden Sie drei Punkte, um auf das Commit zu verweisen, bei dem der zweite Zweig vom ersten abweicht, oder in diesem Fall, wenn Ihr Zweig vom Master abweicht:
Stellen Sie sicher, dass Sie für diesen Fall drei Perioden verwenden.
Randnotiz: Sie können Ihren Filialnamen auch weglassen, da git in diesem Fall automatisch auf den HEAD-Zeiger verweist, zum Beispiel:
entspricht meinem vorherigen Beispiel. Dies funktioniert überall dort, wo ein Commit-Vergleich verfügbar ist.
quelle
git log master...
hat bei mir NICHT funktioniert, hat nurgit log master..
funktioniert. Beachten Sie die zwei Punkte statt dreimaster..mybranch
es 1 gibt (und es gibt tatsächlich nur ein Commit seit der Zweigerstellung), gibt mir Ihre Version mit drei Punkten 35. Woher diese 35 kommt, ist unklar. Es sieht so aus, als würde es alle Commits zählen, diemaster
seit der Erstellung des Zweigs aufgetreten sind. Oder vielleicht sowohl auf dem Ast als auch auf dem Meister ...Wenn Sie sich in dem von Ihnen erstellten Zweig befinden:
quelle
Ja, es ist möglich, Ihren "neuen" Zweig mit dem Hauptzweig zu vergleichen (allgemein als "Master" bezeichnet):
Natürlich ersetzen
<your_branch_name>
.quelle
Ich könnte mich irren, aber ich glaube nicht, dass eine der Antworten genau im OP angefordert wurde, deshalb wollte ich eine neue Antwort hinzufügen. Ich glaube, dass dies genau die gleiche Frage ist, die ich hatte, da dies in anderen Versionsverwaltungssystemen sehr einfach ist.
Ich habe folgendes in MASTER:
'entwickeln' | -> 'GP603'
In ORIGIN (meinem lokalen System) habe ich:
'GP603' [Vom Remote / GP603-Zweig geklont]
Ich habe dann 2 verschiedene Commits durchgeführt. Erste Festschreibungsänderung Datei X. Zweite Festschreibungsänderung Datei X und Datei Y. Einige Tage später wollte ich nur meine Annahme des Status des lokalen Zweigs ORIGIN / GP603 überprüfen. Dies ist, was ich getan habe, um zu bestätigen, dass es nur die 2 Commits gab, an die ich mich erinnere (die in Wirklichkeit die einzigen 2 Commits in der Branche waren).
$ git log origin / GP.603 ...
(Commit 2) Commit b0ed4b95a14bb1c4438c8b48a31db7a0e9f5c940 (HEAD -> GP.603) Autor: xxxxxxx Datum: Mi xxxxx -0400
(Commit 1) Commit 2c4541ca73eacd4b2e20d89f018d2e3f70332e7e Autor: xxxxxxx Datum: Di Okt xxxxx -0400
quelle
Dieser Befehl hat bei mir gut funktioniert. Es war interessant, nur die Namen der Dateien zu sehen, die sich im Delta der Commits zwischen einem Anfangs- und einem Endreferenz geändert haben.
was eine Ausgabe wie diese ergibt,
quelle
Ich gerate oft in die Art von oh, lieber Gott, was ich getan habe . Die eindringliche Angst betrifft insbesondere die jüngsten Veränderungen in der aktuellen Branche. Es ist schön, das Schuldspiel der Commits zu sehen, das ich wie folgt mache. (Angenommen, Sie befinden sich im aktuellen Interessenszweig und haben ihn von dev heraus verzweigt .)
Es gibt mir die Liste der Verpflichtungen, die ich eingegangen bin, um zu dem Ort zurückzukehren, an dem Chaos, Sodom und Gomorra nicht die Realität sind. Es ist auch hilfreich, wenn Sie sich wie ein ADHS-Affe auf LSD zwanghaft festlegen. Sobald ich meine Lagerliste habe, kann ich sie eingrenzen und analysieren, wie in diesem Artikel dokumentiert . Unten finden Sie einen Abschnitt zur Begrenzung der Ausgabe.
quelle