Wie kann ich sehen, was ich mit git pushen werde?

Lesezeit: 7 Minuten

Wie kann ich sehen was ich mit git pushen werde
cmcculloh

Gibt es eine Möglichkeit zu sehen, was gepusht würde, wenn ich a tun würde git push Befehl?

Was ich mir vorstelle, ist so etwas wie die Registerkarte „Dateien geändert“ der „Pull Request“-Funktion von Github. Wenn ich eine Pull-Anfrage aussende, kann ich sehen, was hereingezogen wird, wenn sie meine Pull-Anfrage annehmen: Github-Beispiel für aggregierte Änderungen

Die Befehlszeile ist in Ordnung, aber ich würde eine Art GUI bevorzugen (wie im obigen Screenshot).

  • Siehe auch: stackoverflow.com/questions/3080509/…

    – Nr

    6. November 2012 um 21:49 Uhr


  • Viele verwandte Fragen/Antworten; Hier ist noch eins: stackoverflow.com/questions/2176278/preview-a-git-push/…

    – michael

    17. Januar 2013 um 21:49 Uhr

1646320095 466 Wie kann ich sehen was ich mit git pushen werde
Ionuț G. Stan

Führen Sie für eine Liste der zu übertragenden Dateien Folgendes aus:

git diff --stat --cached [remote/branch]

Beispiel:

git diff --stat --cached origin/master

Führen Sie für den Code-Diff der Dateien, die gepusht werden sollen, Folgendes aus:

git diff [remote repo/branch]

Führen Sie Folgendes aus, um die vollständigen Dateipfade der Dateien anzuzeigen, die sich ändern:

git diff --numstat [remote repo/branch]

Wenn Sie diese Unterschiede in einer GUI sehen möchten, müssen Sie git dafür konfigurieren. Siehe Wie zeige ich die Ausgabe von ‘git diff’ mit einem visuellen Diff-Programm an?.

  • Beide Varianten von git diff –cached ohne Angabe eines Commits zeigen nur die Unterschiede in Bezug auf HEAD an. Ich glaube du meintest git diff [–stat] –cached origin/master, vorausgesetzt, der Hauptzweig des Ursprungs ist master

    – mfontani

    3. September 2010 um 15:18 Uhr

  • Das ist nicht genau das, was Sie wollen. Sie sollten sich unterscheiden HEADnicht der Index, gegen Herkunft (git diff origin/master HEAD). Das Abgleichen des Indexes liefert die gleichen Ergebnisse, wenn und nur wenn Sie keine Änderungen zum Commit bereitgestellt haben. Wenn Sie Änderungen inszeniert haben, werden sie in das Diff aufgenommen, aber offensichtlich nicht gepusht, da sie noch nicht festgeschrieben wurden.

    – Kaskabel

    3. September 2010 um 19:03 Uhr

  • Diese Antwort muss bearbeitet werden, um die Informationen im Kommentar von @Jefromi aufzunehmen git diff --stat origin/master HEAD ist die richtige Antwort.

    – Toni Topper

    2. Juli 2013 um 17:00 Uhr


  • @mfontani hat die richtige Antwort für mich. Ich möchte überprüfen, was von dem, was ich bereits festgeschrieben habe, gepusht wird, nicht was festgeschrieben wird, wenn ich alles festschreibe, was ich geändert habe. git diff --cached [remote/branch] macht den trick 🙂

    – Poshaughnessy

    25. November 2013 um 18:53 Uhr

  • Anstatt origin/master einzugeben, kannst du @{u} verwenden, zB git diff @{u} oder git diff HEAD @{u} Beachte, dass dies nur funktioniert, wenn du bereits einen Upstream-Tracking-Zweig erstellt und verlinkt hast. Ich finde es praktisch, wenn ich viele Zweige und viele Fernbedienungen habe, damit ich nicht darüber nachdenken muss, was wo angeschlossen ist.

    – Damien Sawyer

    18. Dezember 2014 um 10:38 Uhr


1646320095 597 Wie kann ich sehen was ich mit git pushen werde
Brian Gianforcaro

Es gibt immer Trockenlauf:

git push --dry-run

Es wird alles tun, außer das eigentliche Senden der Daten.

Wenn Sie eine grafischere Ansicht wünschen, haben Sie eine Reihe von Optionen.

Tig und das gitk-Skript, die mit git geliefert werden, zeigen beide den aktuellen Zweig Ihrer lokalen Kopie und den Zweig der Remote oder des Ursprungs an.

Alt-Text

Alle von Ihnen vorgenommenen Commits, die nach dem Ursprung liegen, sind also die Commits, die gepusht werden.

Öffnen Sie gitk von der Shell, während Sie sich in dem Zweig befinden, den Sie durch Eingabe pushen möchten gitk&um dann den Unterschied zwischen dem, was sich auf der Fernbedienung befindet, und dem, was Sie auf die Fernbedienung übertragen möchten, zu sehen, wählen Sie Ihr lokales nicht gepushtes Commit aus, klicken Sie mit der rechten Maustaste auf die Fernbedienung und wählen Sie “Diff this -> selected”:
Alt-Text

  • git push –dry-run zeigt mir nicht das, was ich zu sehen hoffe. gitk ist näher, aber es zeigt mir nicht die Gesamtsumme aller Änderungen, die gepusht werden. Wenn ich also 6 Commits auf Remote pushe, möchte ich die Gesamtsumme dessen sehen, was gepusht wird. Es ist mir egal, was jeder Commit einzeln hat, da ein Commit durch den nächsten vollständig negiert werden könnte.

    – cmcculloh

    3. September 2010 um 15:45 Uhr

  • Wenn Sie einen Unterschied brauchen, was gepusht wird, tun Sie es git diff --stat HEAD origin/master oder git diff HEAD origin/master. Wichtig ist die KOPFandernfalls nehmen Sie nicht festgeschriebene Änderungen in Ihr Diff auf

    – Daniel Alder

    7. September 2014 um 11:09 Uhr

  • Gibt es einen Grund, warum git nicht automatisch einen Trockenlauf durchführt, bevor es versucht, Daten an eine Fernbedienung zu übertragen? Wenn Sie eine große Datenmenge übertragen, werden alle Daten hochgeladen und anschließend alle Fehler angezeigt. Sie haben nur Zeit und Bandbreite mit dem Hochladen von Daten verschwendet, die Sie jetzt erneut hochladen müssen. Dies scheint ein seltsames Verhalten zu sein.

    – zeusstl

    19. Januar 2015 um 7:04 Uhr

  • Das Problem mit git push --dry-run ist, dass es immer noch Schreibrechte auf der Fernbedienung benötigt. Wenn Sie also einen Klon ohne Berechtigung zum Upstream-Push haben, aber sehen möchten, was Ihre lokalen nicht gepushten Änderungen sind, --dry-run werde es nicht tun.

    – Ed Avis

    22. April 2015 um 15:07 Uhr


  • Dies ist eine gute Lösung, aber es sollte beachtet werden, dass eine Verbindung zur Fernbedienung erforderlich ist (einschließlich der Eingabe des SSH-Schlüssels, falls zutreffend). Wenn Sie nur den Unterschied zwischen sehen möchten branch und origin/branch, würde ich mit der Antwort von Ionuț G. Stan gehen, da eigentlich keine Verbindung zum Remote-Repo erforderlich ist. Dies kann gut oder schlecht sein, je nachdem, was Sie brauchen.

    – Sean die Bohne

    24. Oktober 2017 um 14:10 Uhr

1646320105 206 Wie kann ich sehen was ich mit git pushen werde
Alex Nolasco

Um einfach die Commits aufzulisten, die darauf warten gepusht zu werden:
(Dies ist die, an die Sie sich erinnern werden)

git cherry -v

Zeigen Sie die Commit-Subjekte neben den SHA1s an.

  • Eine interessante Sache ist, dass Sie eine zu vergleichende Fernbedienung angeben können: git cherry -v heroku/remote falls Sie Ihren Code in mehr als einer Fernbedienung aufbewahren.

    – fagiani

    30. März 2016 um 15:32 Uhr

  • Was ist der beste ergänzende Befehl, der es uns ermöglicht, die Unterschiede, die diese Commits enthielten, tatsächlich zu korrelieren?

    – Hassan Baig

    24. November 2018 um 13:08 Uhr

  • Dieser Befehl ist nett, aber ich hätte gerne mehr Details, wie die Namen der Dateien, die während des Pushs geändert werden sollen.

    – Herr Lance E. Sloan

    7. August 2019 um 13:22 Uhr

  • Ich habe diesen Befehl gefunden git diff --stat --cached origin/branchname schön listet die geänderten Dateien auf.

    – Uwe Baemayr

    2. September 2020 um 18:42 Uhr

  • Interessant, warum, wenn ich benutze git cherry -v Der Befehl endet einfach und ich bekomme das Terminal wieder, als ob nichts passiert wäre? Irgendwelche Hinweise?

    – Beauregard Lionett

    10. August 2021 um 14:38 Uhr

Sie wollen wahrscheinlich laufen git difftool origin/master.... das sollte den vereinheitlichten Diff dessen zeigen, was sich in Ihrem aktuellen Zweig befindet, der sich noch nicht im Ursprungs-/Master-Zweig befindet, und es im grafischen Diff-Tool Ihrer Wahl anzeigen. Führen Sie aus, um auf dem neuesten Stand zu sein git fetch Erste.

Versuchen git diff origin/master..master (vorausgesetzt, dass origin/master ist Ihr Upstream). nicht wie git push --dry-runfunktioniert dies auch dann, wenn Sie keine Schreibberechtigung für den Upstream haben.

1646320106 155 Wie kann ich sehen was ich mit git pushen werde
Nakilon

Eine Möglichkeit, Ihre lokale Version zu vergleichen, bevor Sie sie auf das Remote-Repo übertragen (eine Art Push-in-Dry-Run):

Verwenden Sie TortoiseGit:
Klicken Sie mit der rechten Maustaste auf das Stammordnerprojekt > TortoiseGit > Diff mit vorheriger Version >
für Version 2 wählen refs/remotes/origin/master

1646320107 662 Wie kann ich sehen was ich mit git pushen werde
fuz

Verwenden git gui, dort können Sie eine Liste der Änderungen in Ihrem aktuellen Commit sehen. Sie können auch verwenden gitk die eine einfache Schnittstelle für Reflogs bietet. Einfach mal vergleichen remotes/... und master um zu sehen, was geschoben wird. Es bietet eine ähnliche Oberfläche wie Ihr Screenshot.

Beide Programme sind in git enthalten.

  • Ich sehe keinen Ort in der Git-GUI, der alles anzeigt, was festgeschrieben, aber nicht gepusht wurde.

    – cmcculloh

    3. September 2010 um 16:11 Uhr

  • In der Git-GUI können Sie sehen, was geändert, aber nicht festgeschrieben wurde. In gik (Via gitk --all Sie erhalten eine vollständige Liste aller Kommentare. Jetzt können Sie den aktuellen Zustand Ihres Dev-Zweigs mit Ihrem Remote-to-Push vergleichen.

    – fuz

    4. September 2010 um 6:01 Uhr

924620cookie-checkWie kann ich sehen, was ich mit git pushen werde?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy