Wie soll ich google gits .. Syntax?

1

Ich möchte die Dokumentation für Git- ..Syntax nachschlagen, die zum Beispiel in einem solchen Befehl verwendet wird und git log master..die Commits in meinem Zweig und nicht in master auflistet. Ich möchte wissen, wie sie die Dokumentation formulieren, damit ich sie den Kollegen genau und prägnant erläutern kann.

Hier sind die Suchanfragen, die ich versucht habe

Die Ergebnisse sind alle ziemlich schlecht. Gibt es eine bessere Möglichkeit, nach Dokumentation zur sprachspezifischen Verwendung von Interpunktionssyntax wie Gits zu suchen ..?

Dumbledad
quelle
3
Versuchen Sie, bei symbolhound.com
Jonno
@Jonno Leider führt die Suche nach "git .." nicht wirklich zu nützlichen Ergebnissen. Googeln nach "Git Dot" ist sinnvoller. Googeln "git double dot" ist noch besser;)
DavidPostill

Antworten:

2

Ich möchte die Dokumentation für Git- ..Syntax nachschlagen

Das wird zum Beispiel in einem Befehl wie git log master..

Sie werden als Double Dot- .. und Triple Dot ... Range-Spezifikationen bezeichnet.

Sie sehen sie auch als Bereichssyntax oder Punktsyntax bezeichnet .

Wenn Sie auf http://www.google.com nach diesen Begriffen suchen, erhalten Sie nützliche Ergebnisse.


Kurze Zusammenfassung

git log A..B (zwei Punkte)

Während diese Syntax wie ein "Bereich" von Commits von A nach B aussieht, ist sie eigentlich eine Kurzform für git log ^A B:

  • zeige alle von B erreichbaren Commits an; B selbst ist enthalten
  • ausgenommen diejenigen, die von A aus erreichbar sind; A selbst ist ausgeschlossen

In Anbetracht der folgenden Geschichte (mit den ältesten Commits links, dem neuesten rechts):

*--*--*--A--*--*--*--B

git log A..B zeigt alle Commits rechts von A an.

Beachten Sie, dass dies git log A..äquivalent zu ist git log A..HEAD.

git log A ... B (drei Punkte)

Die git-rev-list-Manpage beschreibt dies als eine spezielle Notation für "symmetric difference".

Es ist äquivalent zu git log A B --not $(git merge-base --all A B).

Im Klartext bedeutet dies "alle Commits, die entweder von A oder B, aber nicht von beiden erreichbar sind.

Quell- Git "Range" oder "Dot" -Syntax


Detaillierte Zusammenfassung

Doppelpunkt

Die gebräuchlichste Bereichsangabe ist die Doppelpunktsyntax. Dies fordert Git grundsätzlich auf, eine Reihe von Festschreibungen aufzulösen, die von einer Festschreibung aus erreichbar, von einer anderen jedoch nicht erreichbar sind. Angenommen, Sie haben einen Commit-Verlauf, der wie folgt aussieht:

Bildbeschreibung hier eingeben

Sie möchten sehen, was sich in Ihrem Experimentzweig befindet, das noch nicht in Ihrem Masterzweig zusammengeführt wurde. Sie können Git bitten, Ihnen nur die Commits mit master..experiment zu protokollieren. Dies bedeutet, dass alle Commits durch Experimente erreichbar sind, die von master nicht erreicht werden können Verwenden Sie die Buchstaben der Festschreibungsobjekte aus dem Diagramm anstelle der tatsächlichen Protokollausgabe in der Reihenfolge, in der sie angezeigt würden:

$ git log master..experiment
D
C

Wenn Sie andererseits das Gegenteil sehen möchten - alle Commits im Master, die nicht im Experiment sind - können Sie die Zweignamen umkehren. experiment..master zeigt dir alles in master, was vom experiment aus nicht erreichbar ist:

$ git log experiment..master
F
E

Dies ist nützlich, wenn Sie den Testzweig auf dem neuesten Stand halten und eine Vorschau der Zusammenführung anzeigen möchten. Eine weitere sehr häufige Verwendung dieser Syntax besteht darin, herauszufinden, was auf eine Fernbedienung übertragen werden soll:

$ git log origin/master..HEAD

Dieser Befehl zeigt Ihnen alle Festschreibungen in Ihrem aktuellen Zweig an, die sich nicht im Hauptzweig auf Ihrer Ursprungsfernbedienung befinden. Wenn Sie einen Git-Push ausführen und Ihr aktueller Zweig Herkunft / Master verfolgt, sind die Commits, die nach Herkunft / Master des Git-Protokolls aufgelistet sind, die Commits, die an den Server übertragen werden. Sie können auch eine Seite der Syntax weglassen, damit Git HEAD übernimmt. Sie können beispielsweise die gleichen Ergebnisse wie im vorherigen Beispiel erzielen, indem Sie git log origin / master eingeben. - Git ersetzt HEAD, wenn eine Seite fehlt.

Mehrere Punkte

Die Doppelpunktsyntax ist als Kurzform nützlich. Vielleicht möchten Sie jedoch mehr als zwei Zweige angeben, um Ihre Revision anzuzeigen, z. B. um festzustellen, welche Commits sich in einem von mehreren Zweigen befinden, die sich nicht in dem Zweig befinden, in dem Sie sich gerade befinden. Mit Git können Sie dies tun, indem Sie entweder das Zeichen ^ oder --nicht vor einem Verweis verwenden, von dem aus Sie keine erreichbaren Commits sehen möchten. Somit sind diese drei Befehle äquivalent:

$ git log refA..refB
$ git log ^refA refB
$ git log refB --not refA

Das ist schön, weil Sie mit dieser Syntax mehr als zwei Referenzen in Ihrer Abfrage angeben können, was mit der Doppelpunktsyntax nicht möglich ist. Wenn Sie beispielsweise alle Commits anzeigen möchten, die von refA oder refB, aber nicht von refC aus erreichbar sind, können Sie Folgendes eingeben:

$ git log refA refB ^refC
$ git log refA refB --not refC

Dies ergibt ein sehr leistungsfähiges Revisionsabfragesystem, mit dessen Hilfe Sie herausfinden können, was sich in Ihren Filialen befindet.

Triple Dot

Die letzte Hauptsyntax für die Bereichsauswahl ist die Triple-Dot-Syntax, die alle Festschreibungen angibt, die von einer der beiden Referenzen, jedoch nicht von beiden erreicht werden können. Schauen Sie sich den Commit-Verlauf in folgendem Beispiel an:

Bildbeschreibung hier eingeben

Wenn Sie sehen möchten, was sich in master oder experiment befindet, aber keine allgemeinen Referenzen haben, können Sie ausführen

$ git log master...experiment
F
E
D
C

Wiederum erhalten Sie eine normale Protokollausgabe, es werden jedoch nur die Festschreibungsinformationen für diese vier Festschreibungen angezeigt, die in der herkömmlichen Reihenfolge der Festschreibungsdaten angezeigt werden.

Ein häufiger Schalter für den Befehl log in diesem Fall ist --left-right, der anzeigt, auf welcher Seite des Bereichs sich die einzelnen Commits befinden. Dadurch werden die Daten nützlicher:

$ git log --left-right master...experiment
< F
< E
> D
> C

Mit diesen Tools können Sie Git viel einfacher mitteilen, welche Commits oder Commits Sie überprüfen möchten.

Source Git Tools - Versionsauswahl

DavidPostill
quelle
Danke - Ich denke, das schwierige Stück wird, wie man mit Google herausfindet, wie sie genannt werden (um diesen Namen in Google zu verwenden, um herauszufinden, wie sie verwendet werden).
Dumbledad