Anzeigen ungepusster Git-Commits

1752

Wie kann ich lokale Commits anzeigen, die ich vorgenommen habe und die noch nicht in das Remote-Repository übertragen wurden? Gelegentlich git statuswird ausgedruckt, dass mein Zweig X Commits voraus ist origin/master, aber nicht immer.

Ist das ein Fehler bei meiner Installation von Git oder fehlt mir etwas?

Josh Bühler
quelle
18
Ab Git 2.5+ (Q2 2015) wäre die eigentliche Antwort git log @{push}... Sehen Sie diese neue Verknüpfung @{push}(die auf den
Fernverfolgungszweig
59
@Torek - eine weitere einfache Aufgabe, die Git erschwert hat. Jedes Mal, wenn eine Git-Frage mit Hunderten oder Tausenden von Upvotes und Millionen von Views auftaucht, sollte jemand denken: Wow, wir haben diesen Workflow wirklich vermasselt. Leider haben die Git-Entwickler den Feedback-Schritt im Entwicklungslebenszyklus weggelassen, sodass das Feedback nicht berücksichtigt wird. Stattdessen machen sie immer wieder dieselben Fehler. Für diese Frage git status --allsollte im Jahr 2010 erschienen sein; oder git status -vsollte tatsächlich die ausführliche Ausgabe bereitstellen, die die zusätzlichen Informationen enthält.
JWW
4
Ich bin nicht der Meinung, dass "git status -v" diese Informationen bereitstellen sollte, da es den Status des Arbeitsbaums angeben soll, da er sich nur auf den ausgecheckten Zweig bezieht. Siehe jedoch die Antwort unten über "git branch -v", die meiner Meinung nach die akzeptierte Antwort sein sollte
JoelFan
13
Diese spezielle StackOverflow-Frage hat die höchste Anzahl an richtigen Antworten, die alle funktionieren, aber keinen Sinn ergeben.
Pete Alvin
@ josh-buhler Entschuldigung, ich habe versehentlich abgewählt ... während ich versucht habe, auf den 'STERN' zu klicken. Erneut versucht zu stimmen, hat aber nicht funktioniert!
RafiAlhamd

Antworten:

1828
git log origin/master..HEAD

Sie können das Diff auch mit derselben Syntax anzeigen

git diff origin/master..HEAD
Peter B.
quelle
3
Dies hat es für mich getan - aus irgendeinem Grund hat git log origin .. selbst einen Fehler ausgelöst. Anscheinend hatte ich auch ein Problem mit der Konfiguration meines lokalen Zweigs - nachdem ich die hier vorgenommenen Änderungen vorgenommen hatte: wincent.com/blog/…… wurde das Problem behoben und ich konnte den Git-Status erneut verwenden, um zu sehen, was ich wollte .
Josh Buhler
6
Von unschätzbarem Wert: So sehr, git config --global alias.ahead "log origin/master..HEAD --oneline"dass ich schnell herausfinden kann, wo ich bin. Noch mehr Süßigkeiten:for i in *; do echo $i && git ahead 2>/dev/null; done
Jamie
15
git log --stat origin/master..HEADfür ein wenig mehr Attraktivität
Cory Danielson
141
Dies ist nicht die beste Lösung. Origin / Master ist möglicherweise nicht immer der Upstream-Zweig. Eine bessere Lösung besteht darin, @ {u} anstelle von "origin / master" zu verwenden, um den Upstream-Zweig anzugeben. Da HEAD standardmäßig impliziert ist, kann man das auch weglassen. Siehe die Antwort von @Ben Ling. Ausgehende Änderungen: Git Log @ {u} .. Eingehende Änderungen: Git Log .. @ {u}
PlagueHammer
12
@Nocturne Ich möchte nur darauf hinweisen, dass die @{u}Syntax zum Zeitpunkt der Veröffentlichung dieser Antwort noch nicht verfügbar war und erst am 12. Februar 2010 verfügbar wurde . Funktioniert auch @{u}nicht, wenn der lokale Zweig nicht mit einem Upstream konfiguriert ist. Schließlich @{u}gibt es derzeit keine Unterstützung für die Tab-Vervollständigung. Die <remote>/<branch>Tab-Vervollständigung bleibt eine der schnellsten Möglichkeiten, um diese Informationen abzurufen, und es funktioniert, ob ein Upstream konfiguriert ist oder nicht.
703

Wenn Sie alle Commits in allen Zweigen anzeigen möchten, die noch nicht gepusht wurden, suchen Sie möglicherweise nach Folgendes:

git log --branches --not --remotes

Wenn Sie nur das aktuellste Commit für jeden Zweig und die Namen der Zweige anzeigen möchten, gehen Sie wie folgt vor:

git log --branches --not --remotes --simplify-by-decoration --decorate --oneline
cxreg
quelle
8
Das ist fantastisch. In einem verwandten Szenario hatte ich zwei lokale Zweige mit zwei vorgelagerten Zweigen, und eine lokale Hand wurde in die andere zusammengeführt. Ich wollte wissen, welche Commits sicher wiederhergestellt werden können, aber das Normale git log master..HEADwürde nicht funktionieren, da es mehrere Upstreams gibt. Dieser Beitrag hat mich dazu gebracht git log MyBranch --not --remotes, alle Commits, die noch nicht in einem Upstream an einen Upstream gesendet wurden, anzuzeigen.
Pavon
Dies war so nützlich, dass ich es in meiner zsh-Konfiguration als Alias ​​verwendet habe. Vielen Dank.
Scotty C.
Ich verstehe, dass Ihr zweiter Befehl auch die Commits auflistet, die noch nicht gepusht wurden, nur zeigt er nur einen pro Zweig an.
Stephane
--decoratezeigt auch die Zweige. --graphmacht es noch offensichtlicher.
Ray
Beachten Sie, dass diese Befehle nur Commits auflisten, die in keinem Zweig übertragen wurden. Beispiel: Angenommen, Sie haben eine Zweigentwicklung mit branch feat-NewThing. Sie nehmen lokal Änderungen an feat-NewThing vor. (Das Protokoll hat Änderungen.) Anschließend drücken Sie feat-newThing in den Remote-Zweig. (Protokoll ist leer). Sie führen local feat-newThing zusammen, um es lokal zu entwickeln. Unter der Annahme eines schnellen Vorlaufs hat das Protokoll noch keine Änderungen.
Patrick W
325

Sie können alle Commits anzeigen, die Sie lokal, aber nicht vorgelagert haben

git log @{u}..

@{u}oder bezeichnet @{upstream}den Upstream-Zweig des aktuellen Zweigs (siehe git rev-parse --helpoder git help revisionsfür Details).

Ben Lings
quelle
17
Unter Windows musste ich das letzte Argument in Anführungszeichen setzen, wie zum Beispiel: git log "@ {u} .."
Jon Schneider
git log @{u}.. -p Eine der nützlichsten Optionen ist -p , die die in jeder Bestätigung eingeführten Unterschiede anzeigt.
mQuiroz
Möglicherweise besser git log @ {push} .., siehe eine andere Antwort .
Hans-Peter Störr
183

Das hat bei mir funktioniert:

git cherry -v 

Wie bei Git angegeben: Alle nicht gepushten Commits oder Commits anzeigen, die sich nicht in einem anderen Zweig befinden .

Christian Vielma
quelle
21
Ich denke, dies sollte die Hauptantwort sein, da diese die prägnantere Liste der Commits anstelle des schwer lesbaren, ausführlichen Unterschieds in allen Dateien enthält !!
ViFI
1
git-cherry - "Commits finden, die noch nicht auf den Upstream angewendet wurden", scheint das zu liefern, wonach das OP gefragt hat, jedoch nur den Commit-Betreff und nicht die gesamte Commit-Nachricht.
Eido95
2
Es ist erwähnenswert, dass dies nur dann angezeigt wird, wenn in dem Zweig, den Sie gerade ausgecheckt haben, nicht gepushte Commits vorhanden sind. Es wird Ihnen nicht mitgeteilt, ob Sie eine lokale Niederlassung (derzeit nicht ausgecheckt) mit nicht gepushten Commits haben.
Dave Yarwood
66

Sie können dies tun mit git log:

git log origin..

Angenommen, dies originist der Name Ihres Upstreams, lassen Sie nach der ..Implikation den Namen der Revision weg HEAD, in dem die neuen Commits aufgelistet sind, die nicht übertragen wurden.

Greg Hewgill
quelle
1
Immer wenn ich eine Antwort mit git logund "2-Punkte-nicht-3" sehe , erinnere ich mich immer an stackoverflow.com/questions/53569/… ;)
VonC
1
Nur um es der Antwort hinzuzufügen - wenn es kein Upstream-Setup gibt, führt dieser Befehl dazu, dass kein Upstream eingerichtet wurde. Führen Sie git branch --set-upstream master origin/<branch>diese Option aus, um Upstream einzurichten, wenn Sie diesen Befehl verwenden möchten, um bereitgestellte Commits anzuzeigen.
Asyncwait
Dies wird mit dem Standardzweig im Ursprung verglichen, nicht mit dem aktuellen Remote-Zweig.
Greuze
43

Alle anderen Antworten sprechen von "Upstream" (dem Zweig, aus dem Sie ziehen).
Aber eine lokale Niederlassung kann Push auf einen anderen Zweig als die von er zieht.

masterMöglicherweise wird nicht auf den Remote-Tracking-Zweig " origin/master" verschoben .
Der Upstream- Zweig für masterkönnte sein origin/master, aber er könnte auf den Remote-Tracking-Zweig origin/xxxoder sogar pushen anotherUpstreamRepo/yyy.
Diese werden branch.*.pushremotezusammen mit dem global remote.pushDefaultWert für den aktuellen Zweig festgelegt .

Es ist dieser Remote-Tracking-Zweig, der bei der Suche nach nicht gepushten Commits zählt: derjenige, der verfolgt, branch at the remotewohin der lokale Zweig verschoben wird .
Das branch at the remotekann wieder origin/xxxoder sogar sein anotherUpstreamRepo/yyy.

Git 2.5+ (Q2 2015) führt eine neue Verknüpfung dafür ein: <branch>@{push}

Siehe 29bc885 begehen , begehen 3dbe9db , begehen adfe5d0 , begehen 48c5847 , begehen a1ad0eb , begehen e291c75 , begehen 979cb24 , begehen 1ca41a1 , begehen 3a429d0 , begehen a9f9f8c , begehen 8770e6f , begehen da66b27 , begehen f052154 , begehen 9e3751d , begehen ee2499f [alle vom 21. Mai 2015] und Commit e41bf35 [01. Mai 2015] von Jeff King ( peff) .
(Zusammengeführt von Junio ​​C Hamano - gitster-in commit c4a8354 , 05. Juni 2015)

Commit adfe5d0 erklärt:

sha1_name: @{push}Kurzschrift implementieren

In einem dreieckigen Workflow kann jeder Zweig zwei unterschiedliche Punkte von Interesse haben: den @{upstream}, von dem Sie normalerweise ziehen, und das Ziel, zu dem Sie normalerweise pushen. Es gibt keine Abkürzung für Letzteres, aber es ist nützlich zu haben.

Beispielsweise möchten Sie möglicherweise wissen, welche Commits Sie noch nicht gepusht haben :

git log @{push}..

Oder stellen Sie sich als komplizierteres Beispiel vor, Sie ziehen normalerweise Änderungen aus origin/master(die Sie als Ihre festgelegt haben @{upstream}) und übertragen Änderungen auf Ihre persönliche Gabel (z myfork/topic. B. as ).
Sie können von mehreren Computern aus auf Ihre Gabel drücken, sodass Sie die Änderungen vom Push-Ziel und nicht vom Upstream integrieren müssen .
Mit diesem Patch können Sie einfach Folgendes tun:

git rebase @{push}

anstatt den vollständigen Namen einzugeben.

Commit 29bc885 fügt hinzu:

for-each-ref: Akzeptiere das %(push)Format " "

Genau wie wir %(upstream)" @{upstream}" für jeden Schiedsrichter " " melden müssen, fügt dieser Patch " %(push)" passend " @{push}" hinzu.
Es unterstützt dieselben Modifikatoren für das Tracking-Format wie Upstream (weil Sie beispielsweise wissen möchten, welche Zweige Commits zum Pushen haben ).

Wenn Sie sehen möchten, wie viele Commits Ihre lokalen Niederlassungen im Vergleich zu der Niederlassung, auf die Sie drängen, voraus / hinterher sind:

git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
VonC
quelle
42

Praktischer Git-Alias ​​für die Suche nach nicht gepushten Commits in der aktuellen Branche:

alias unpushed = !GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline

Was dies im Grunde tut:

git log origin/branch..branch

bestimmt aber auch den aktuellen Filialnamen.

Takeshin
quelle
8
Das ist fantastisch! Wenn Sie mit Aliasen nicht vertraut sind, fügen Sie sie einfach Ihrer ~ / .gitconfig-Datei im Abschnitt [Alias] hinzu.
Gary Haran
1
Kopieren / Einfügen in Bash funktioniert nicht, aber das Skript ist sehr nützlich und verständlich
Greuze
Dies ist kein Bash-Alias, wie @GaryHaran betont. Es gibt auch einen git-Befehl zum Hinzufügen von Aliasen: git alias <alias-name> <command>In diesem Fall sollte der Befehl von einfachen Anführungszeichen umgeben sein, um Sonderzeichen aus der Shell zu entfernen.
Dag Høidahl
4
Das wäre:git config --global alias.unpushed '!GIT_CURRENT_BRANCH=$(git name-rev --name-only HEAD) && git log origin/$GIT_CURRENT_BRANCH..$GIT_CURRENT_BRANCH --oneline'
Ricky Levi
Das scheint im Grunde dasselbe zu sein wie git log @ {u} .. - siehe eine andere Antwort .
Hans-Peter Störr
35

Du könntest es versuchen....

gitk

Ich weiß, dass es keine reine Befehlszeilenoption ist, aber wenn Sie es installiert haben und sich auf einem GUI-System befinden, ist es eine großartige Möglichkeit, genau zu sehen, wonach Sie suchen, und vieles mehr.

(Ich bin eigentlich etwas überrascht, dass es bisher niemand erwähnt hat.)

Justin Ohms
quelle
3
gitk --allzur Ansicht aller Zweige.
Ray
3
tigist die ncurses Alternative.
Ray
@ Justin-Ohm gitkist super ! Ich wusste nie, dass es das gibt! Praktisch, um Änderungen in einer schönen Benutzeroberfläche zu durchsuchen.
RafiAlhamd
@ray tigist am nützlichsten in einer "Nur-Terminal" -Situation, in der Sie keinen Zugriff auf die Desktop-GUI erhalten. Zum ersten Mal davon erfahren! INTERESSANT: tigist umgekehrt git!
RafiAlhamd
30

git branch -v zeigt für jede lokale Niederlassung an, ob sie "voraus" ist oder nicht.

Aurelien
quelle
2
Ja, falls es in der Verzweigung ein nicht verschobenes Commit gibt devel, wird die entsprechende Zeile angezeigt * devel 8a12fc0 [ahead 1] commit msg( *nur in der Zeile, die der ausgecheckten Verzweigung entspricht ). ahead 1bedeutet "voraus durch ein Commit", dh es gibt ein nicht gedrücktes Commit.
Aurelien
2
Ist es nicht git branch -vv? Vgl. docs: "Wenn zweimal angegeben, drucken Sie auch den Namen des Upstream-Zweigs aus (siehe auch git remote show <remote>)."
Schmutziger Henry
Hier geht es nicht um das Drucken des Namens des Upstream-Zweigs, sondern nur um das Drucken behindund / oder aheadfür jeden lokalen Zweig, was ausreicht, um das Problem des OP zu lösen (Erkennen nicht gepusherer Commits). git branch -vist genug dafür, gerade nochmal mit Git 2.16.2 getestet :)
Aurelien
Das -vv ist nützlich, da es einen Unterschied zwischen den Zweigen zeigt, die mit der Fernbedienung auf dem neuesten Stand sind, und denen, die überhaupt nicht gedrückt wurden. (Mit nur einem -v werden sie identisch im Display angezeigt.)
RM
30

Ich hatte zuvor ein Commit durchgeführt, das weder an eine Zweigstelle noch an eine entfernte oder lokale Stelle gesendet wurde. Nur das Commit. Nichts von anderen Antworten hat für mich funktioniert, aber mit:

git reflog

Dort habe ich mein Commit gefunden.

Olaia
quelle
Wie in diesem Link angegeben , zeichnen git-scm.com/docs/git-reflog , Referenzprotokolle oder "Reflogs" auf, wann die Tipps von Zweigen und anderen Referenzen im lokalen Repository aktualisiert wurden. In meinem Fall habe ich ein Repo geklont, einen neuen Zweig erstellt, den Zweig gelöscht, einen neuen erstellt, ein Commit erstellt und das Commit geändert. Alle diese Schritte wurden als HEAD @ {0} aufgezeichnet: Festschreiben (Ändern): .. HEAD @ {1}: Festschreiben: ... HEAD @ {2}: Auschecken: Wechseln von ... nach ... HEAD @ { 3}: Auschecken: Verschieben von ... nach ... HEAD @ {4}: Klon: Von #sorry für das Format SO erlaubt anscheinend keine Mehrzeiligkeit in Kommentaren
Geschwindigkeit
Dies schließt auch die Ursprungs-Commits ein. Die beste Lösung wäre die Verwendung des Befehls von @PlagueHammer ( stackoverflow.com/a/2016954/624048 )
Lincoln,
20

Ich verwende den folgenden Alias, um nur die Liste der Dateien (und den Status) abzurufen, die festgeschrieben, aber nicht gepusht wurden (für den aktuellen Zweig).

git config --global alias.unpushed \
"diff origin/$(git name-rev --name-only HEAD)..HEAD --name-status"

dann mach einfach:

git unpushed
CCC
quelle
sieht interessant aus, aber $ (git name-rev - name-only HEAD) ist in meinem Fall "undefiniert"
vak
13

Ich glaube, der typischste Weg, dies zu tun, besteht darin, etwas auszuführen wie:

git cherry --abbrev=7 -v @{upstream}

Ich persönlich laufe jedoch lieber:

git log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..

Hier werden die Commits aller Zweige angezeigt, die nicht stromaufwärts zusammengeführt wurden, sowie das letzte Commit im Upstream (das als Stammknoten für alle anderen Commits angezeigt wird). Ich benutze es so oft, dass ich einen Alias noupdafür erstellt habe.

git config --global alias.noup \
'log --graph --decorate --pretty=oneline --abbrev-commit --all @{upstream}^..'
Giorgos Kylafas
quelle
11

Ich schlage vor, Sie sehen sich das Skript https://github.com/badele/gitcheck an . Ich habe dieses Skript zum Einchecken aller Ihrer Git-Repositorys in einem Durchgang codiert und es zeigt, wer nicht festgeschrieben und wer nicht gedrückt / gezogen hat.

Hier ein Beispielergebnis Geben Sie hier die Bildbeschreibung ein

Bruno Adelé
quelle
1
Könnten Sie bitte erklären, wie dieses Plugin auf einem Windows-Computer funktioniert? Ich versuche, pip auszuführen, aber der Befehl fehlt in der Befehlszeile. Ich habe Python installiert, bin mir aber nicht sicher, ob es ausreicht.
Konrad Szałwiński
@ KonradSzałwiński Ich habe keine Windows-Maschine, aber in diesem Thema ( stackoverflow.com/questions/4750806/… ) scheint der Benutzer auf Ihre Frage eine Antwort zu haben :). Aber ich habe nicht in Windows getestet und ich bin nicht sicher, ob es funktioniert.
Bruno Adelé
@ KonradSzałwiński, der ChristianTremblay-Github-Mitarbeiter, hat eine Windows-Unterstützung hinzugefügt. Jetzt funktioniert der Gitcheck unter Windows. Sie können es auf github.com/badele/gitcheck
Bruno Adelé
Jetzt können Sie Gitcheck auch direkt aus einem Docker-Container verwenden (mit Ihren Dateien in Ihrem Host). Weitere Informationen finden Sie im Gitcheck-Github-Projekt
Bruno Adelé,
Vielen Dank für die Veröffentlichung, es scheint wirklich nützlich. Ich habe versucht zu installieren, aber nach der Installation kann ich den Speicherort des Skripts zum Ausführen nicht finden. $ pip install git + git: //github.com/badele/gitcheck.git Sammeln von git + git: //github.com/badele/gitcheck.git Klonen von git: //github.com/badele/gitcheck.git nach c : \ users \ u6041501 \ appdata \ local \ temp \ pip-bxt472z_-build Gesammelte Pakete installieren: gitcheck Setup.py-Installation für gitcheck ausführen: gestartet Setup.py-Installation für gitcheck ausführen: Fertig mit Status 'erledigt' Erfolgreich installiertes gitcheck-0.3 .22
Lauren Fitch
10
git cherry -v

Dadurch wird Ihr lokaler Kommentarverlauf (noch nicht gepusht) mit der entsprechenden Nachricht aufgelistet

adswebwork
quelle
9

Es ist kein Fehler. Was Sie wahrscheinlich sehen, ist der Git-Status nach einer fehlgeschlagenen automatischen Zusammenführung, bei der die Änderungen von der Fernbedienung abgerufen, aber noch nicht zusammengeführt werden.

Gehen Sie folgendermaßen vor, um die Commits zwischen lokalem Repo und Remote anzuzeigen.

git fetch

Dies ist 100% sicher und wird Ihre Arbeitskopie nicht verspotten. Wenn es Änderungen gab, werden sie git statusangezeigt X commits ahead of origin/master.

Sie können jetzt das Protokoll der Commits anzeigen, die sich auf der Remote, aber nicht auf der lokalen Ebene befinden:

git log HEAD..origin
Igor Zevaka
quelle
8

Das hat bei mir besser funktioniert:

git log --oneline @{upstream}..

oder:

git log --oneline origin/(remotebranch)..
VaTo
quelle
2
Für alle anderen, die sich fragen, @{upstream}ist es wörtlich ( upstreamist ein Zauberwort), während remotebranches nur der Name Ihres Zweigs ist.
Steve Bennett
7

Es gibt ein Tool namens unpushed , das alle Git- , Mercurial- und Subversion-Repos im angegebenen Arbeitsverzeichnis scannt und eine Liste der nicht festgeschriebenen Dateien und nicht gepushten Commits anzeigt. Die Installation ist unter Linux einfach:

$ easy_install --user unpushed

oder

$ sudo easy_install unpushed

systemweit installieren.

Die Verwendung ist auch einfach:

$ unpushed ~/workspace
* /home/nailgun/workspace/unpushed uncommitted (Git)
* /home/nailgun/workspace/unpushed:master unpushed (Git)
* /home/nailgun/workspace/python:new-syntax unpushed (Git)

Siehe unpushed --helpoder offizielle Beschreibung für weitere Informationen. Es gibt auch ein Cronjob-Skript unpushed-notifyfür die Benachrichtigung auf dem Bildschirm über nicht festgeschriebene und nicht gepuschte Änderungen.

Nagelpistole
quelle
5

Mit diesem Befehl können Sie alle nicht gepussten Festschreibungen in allen Zweigen einfach auflisten :

 git log --branches  @{u}..
Mohsen Kashi
quelle
4

Ähnlich: So zeigen Sie nicht zusammengeführte Zweige an:

git branch --all --no-merged

Diese können verdächtig sein, aber ich empfehle die Antwort von cxreg

Christophe Roussy
quelle
3

Wenn die Anzahl der Commits, die nicht ausgegeben wurden, eine einstellige Zahl ist, was häufig der Fall ist, ist der einfachste Weg:

$ git checkout

git antwortet, indem er Ihnen sagt, dass Sie in Bezug auf Ihre Herkunft "voraus N Commits" sind. Denken Sie jetzt beim Anzeigen von Protokollen an diese Nummer. Wenn Sie "3 Commits voraus" sind, sind die Top 3 Commits in der Geschichte immer noch privat.

Kaz
quelle
2

Eine Möglichkeit besteht darin, Commits aufzulisten, die in einem Zweig verfügbar sind, in einem anderen jedoch nicht.

git log ^origin/master master
Alex
quelle
Was macht der '^' Charakter?
Aran Mulholland
@AranMulholland steht es nicht hier.
Alex
1

Wie oben gesagt:

Git Diff Herkunft / Master .. HEAD

Aber wenn Sie Git Gui verwenden

Wählen Sie nach dem Öffnen der GUI-Oberfläche "Repository" -> Unter "Verlauf visualisieren ".

Hinweis: Einige Benutzer verwenden gerne CMD Prompt / Terminal, während andere die Git-GUI verwenden (der Einfachheit halber).

vrnair24
quelle
Visualisierungsoption in Git GUI ist die eine.
Rajesh Kolhapure
-2

Hier ist meine tragbare Lösung (Shell-Skript, das auch unter Windows ohne zusätzliche Installation funktioniert), die die Unterschiede zum Ursprung für alle Zweige zeigt: git-fetch-log

Eine Beispielausgabe:

==== branch [behind 1]

> commit 652b883 (origin/branch)
| Author: BimbaLaszlo <[email protected]>
| Date:   2016-03-10 09:11:11 +0100
|
|     Commit on remote
|
o commit 2304667 (branch)
  Author: BimbaLaszlo <[email protected]>
  Date:   2015-08-28 13:21:13 +0200

      Commit on local

==== master [ahead 1]

< commit 280ccf8 (master)
| Author: BimbaLaszlo <[email protected]>
| Date:   2016-03-25 21:42:55 +0100
|
|     Commit on local
|
o commit 2369465 (origin/master, origin/HEAD)
  Author: BimbaLaszlo <[email protected]>
  Date:   2016-03-10 09:02:52 +0100

      Commit on remote

==== test [ahead 1, behind 1]

< commit 83a3161 (test)
| Author: BimbaLaszlo <[email protected]>
| Date:   2016-03-25 22:50:00 +0100
|
|     Diverged from remote
|
| > commit 4aafec7 (origin/test)
|/  Author: BimbaLaszlo <[email protected]>
|   Date:   2016-03-14 10:34:28 +0100
|
|       Pushed remote
|
o commit 0fccef3
  Author: BimbaLaszlo <[email protected]>
  Date:   2015-09-03 10:33:39 +0200

      Last common commit

Für das Protokoll übergebene Parameter, z. B. --onelineoder --patchkönnen verwendet werden.

Bimlas
quelle
-3
git show

zeigt alle Unterschiede in Ihren lokalen Commits an.

git show --name-only

zeigt die lokale Commit-ID und den Namen des Commits an.

user2387567
quelle
3
git showZeigt nur das letzte Commit an, unabhängig davon, ob es auf die Fernbedienung übertragen wurde oder nicht. Es werden nicht alle nicht gedrückten Commits angezeigt.
-6
git diff origin

Angenommen, Ihr Zweig ist so eingerichtet, dass er den Ursprung verfolgt, dann sollte dies Ihnen die Unterschiede zeigen.

git log origin

Gibt Ihnen eine Zusammenfassung der Commits.

Mopoke
quelle
3
git log originzeigt Ihnen Commits an, die bereits gepusht wurden , aber es werden keine Commits angezeigt, die nicht gepusht wurden , was eher dem entspricht, wonach das Originalplakat gefragt hat.