Wie kann ich Git-Pull in der Vorschau anzeigen?

Lesezeit: 7 Minuten

Wie kann ich Git Pull in der Vorschau anzeigen
Milan Babuskov

Ist es überhaupt möglich?

Grundsätzlich gibt es ein Remote-Repository, aus dem ich nur Folgendes ziehe:

git pull

Jetzt möchte ich eine Vorschau sehen, was dieser Zug ändern würde (ein Unterschied), ohne etwas auf meiner Seite zu berühren. Der Grund ist, dass das, was ich ziehe, möglicherweise nicht “gut” ist und ich möchte, dass jemand anderes es repariert, bevor mein Repository “schmutzig” wird.

  • Deine Bearbeitung ist seltsam. Das Ausführen eines “Git-Fetch” ändert Ihren Arbeitsbaum in keiner Weise, daher spielt es keine Rolle, ob Sie nicht festgeschriebene lokale Änderungen haben. Und es ist unklar, welchen Teil des Abrufs Sie rückgängig machen möchten, da er Ihren Arbeitsbaum nicht berührt.

    – dkagedal

    8. Oktober 2008 um 19:42 Uhr

  • Danke dkagedal, ich habe das geschrieben, bevor ich vollständig verstanden habe, wie Git funktioniert. Ich habe diese Bearbeitung entfernt.

    – Milan Babuškov

    8. Januar 2010 um 2:12 Uhr

  • Jeder (einschließlich des OP) hat auf diesen „Git-Fetch“ zurückgegriffen, was Sie wollen. Aber was ist, wenn Sie die Frage Wort für Wort beantworten? Sie möchten zum Beispiel das Abrufen aus seltsamen Gründen vermeiden, wie z. B. eine schreibgeschützte Festplatte oder das Risiko, dass der Festplattenspeicher knapp wird? Z.B. ein durcheinandergebrachtes Repo, das Ihnen mehrere GB an Daten senden könnte …

    – Kjell

    31. Januar 2021 um 22:59 Uhr


  • Mir ist klar, dass dies eine alte Frage ist, aber der Titel ist verwirrend, insbesondere “ohne Abrufen”. Ich denke, als dies geschrieben wurde, wurde eine Annahme darüber gemacht bringen das hat sich als falsch herausgestellt. Könnte es sinnvoll sein, den Fragentitel jetzt zu bearbeiten? (Ich würde vorschlagen, einfach “ohne Abrufen” zu entfernen.)

    – TTT

    3. Juni 2021 um 22:22 Uhr


1646253490 666 Wie kann ich Git Pull in der Vorschau anzeigen
Greg Hewgill

Nachdem Sie a git fetchmach ein git log HEAD..origin/master um die Protokolleinträge zwischen Ihrem letzten gemeinsamen Commit und dem Master-Zweig des Ursprungs anzuzeigen. Um die Unterschiede anzuzeigen, verwenden Sie entweder git log -p HEAD..origin/master um jeden Patch anzuzeigen, oder git diff HEAD...origin/master (drei Punkte nicht zwei), um ein einzelnes Diff anzuzeigen.

Normalerweise ist es nicht erforderlich, einen Abruf rückgängig zu machen, da durch einen Abruf nur die aktualisiert wird Fernbedienung Niederlassungen und keine von dein Geäst. Wenn Sie nicht bereit sind, alle Remote-Commits zu ziehen und zusammenzuführen, können Sie verwenden git cherry-pick um nur die gewünschten Remote-Commits zu akzeptieren. Später, wenn Sie bereit sind, alles zu bekommen, a git pull wird mit den restlichen Commits zusammengeführt.

Update: Ich bin mir nicht ganz sicher, warum Sie die Verwendung von git fetch vermeiden möchten. Alles, was git fetch tut, ist, Ihre lokale Kopie der Remote-Zweige zu aktualisieren. Diese lokale Kopie hat nichts mit einem Ihrer Zweige zu tun, und sie hat nichts mit nicht festgeschriebenen lokalen Änderungen zu tun. Ich habe von Leuten gehört, die git fetch in einem Cron-Job ausführen, weil es so sicher ist. (Normalerweise würde ich das aber nicht empfehlen.)

  • Ich schätze, ich habe diesen Teil von “nichts mit MEINEN Zweigen zu tun” beim Lesen der Dokumentation verpasst. Danke.

    – Milan Babuškov

    8. Oktober 2008 um 19:38 Uhr

  • Aus irgendeinem Grund funktioniert das bei mir nicht. Ich habe git diff HEAD…origin/master ausprobiert und es hat noch keine Änderungen aufgelistet, wenn ich “Pull Origin Master” mache, ruft es die Änderungen ab und führt sie zusammen. Liegt das daran, dass ich das Remote-Repository mit git remote add eingerichtet habe?

    – screenm0nkey

    30. September 2011 um 14:43 Uhr

  • @screenm0nkey: Ich weiß es nicht (ohne weitere Informationen zu kennen). Ich empfehle, eine neue Frage zu öffnen, um diese Frage zu stellen, wenn Sie sich immer noch nicht sicher sind.

    – Greg Hewgill

    30. September 2011 um 18:46 Uhr

  • Was bei mir funktioniert (nach dem git fetch): git log origin/master

    – Slam

    28. Oktober 2016 um 18:29 Uhr


  • git diff [email protected]{u} ist das gleiche wie git diff HEAD...origin/master wenn origin/master der Upstream-Zweig ist

    – kambunt

    19. Juli 2019 um 14:58 Uhr

1646253490 797 Wie kann ich Git Pull in der Vorschau anzeigen
Brian Gianforcaro

Ich denke git holen ist das was du suchst.

Es zieht die Änderungen und Objekte, ohne sie in den Index Ihres lokalen Repositorys zu übernehmen.

Sie können später mit zusammengeführt werden git zusammenführen.

Manpage

Bearbeiten: Weitere Erläuterungen

Direkt von der Git- SVN-Crashkurs Verknüpfung

Wie erhalten Sie nun neue Änderungen aus einem Remote-Repository? Du holst sie:

git fetch http://host.xz/path/to/repo.git/ 

An diesem Punkt befinden sie sich in Ihrem Repository und Sie können sie untersuchen mit:

git log origin 

Sie können die Änderungen auch unterscheiden. Sie können auch verwenden git log HEAD..origin um nur die Änderungen zu sehen, die Sie in Ihrem Zweig nicht haben. Wenn Sie sie dann zusammenführen möchten, tun Sie einfach Folgendes:

git merge origin

Beachten Sie, dass, wenn Sie keinen abzurufenden Zweig angeben, dieser praktischerweise standardmäßig auf die Tracking-Fernbedienung gesetzt wird.

Wenn Sie die Manpage lesen, erhalten Sie ehrlich gesagt das beste Verständnis für die Optionen und deren Verwendung.

Ich versuche dies nur anhand von Beispielen und Erinnerungen zu tun, ich habe derzeit keine Box zum Testen. Sie sollten sich ansehen:

git log -p //log with diff

Ein Abruf kann mit rückgängig gemacht werden git reset –hart (Verknüpfung) , jedoch gehen alle nicht festgeschriebenen Änderungen in Ihrem Baum sowie die von Ihnen abgerufenen Änderungen verloren.

  • Wenn Sie zwei Dinge erklären, könnte das gut sein: 1. Wie mache ich Git-Fetch rückgängig? 2. Wie sehe ich den Unterschied?

    – Milan Babuškov

    7. Oktober 2008 um 20:50 Uhr

  • 1) Git-Fetch rückgängig machen? 2) git diff HEAD..ursprung

    – Chris Vest

    7. Oktober 2008 um 22:27 Uhr

  • Der Diff wird wie Christian gesagt, ein Abruf kann mit git reset –hard rückgängig gemacht werden, jedoch gehen alle nicht festgeschriebenen Änderungen in Ihrem Baum verloren, ebenso wie die Änderungen, die Sie abgerufen haben.

    – Brian Gianforcaro

    7. Oktober 2008 um 23:26 Uhr

  • Suchen Sie git reset --soft oder --mixed? Überprüfen Sie die Manpage.

    – Aristoteles Pagaltzis

    19. Oktober 2008 um 0:22 Uhr

  • Wenn ich das richtig verstehe, besteht keine Notwendigkeit, einen “Git-Fetch” rückgängig zu machen, da er Ihre Arbeitskopie und auch nicht Ihr Repository berührt. „git fetch“ speichert Objekte und Refs in .git/FETCH_HEAD

    – Thorsten Niehues

    30. August 2012 um 8:17 Uhr

1646253491 682 Wie kann ich Git Pull in der Vorschau anzeigen
Antonio Bardazzi

Sie können aus einem Remote-Repository abrufen, die Unterschiede anzeigen und dann abrufen oder zusammenführen.

Dies ist ein Beispiel für ein Remote-Repo namens origin und eine Filiale namens master Verfolgen der Remote-Zweigstelle origin/master:

git checkout master                                                  
git fetch                                        
git diff origin/master
git pull --rebase origin master

Ich habe einen benutzerdefinierten Git-Alias ​​erstellt, um das für mich zu tun:

alias.changes=!git log --name-status HEAD..

damit kannst du das machen:

$git fetch
$git changes origin

Auf diese Weise erhalten Sie eine schöne und einfache Möglichkeit, Änderungen in der Vorschau anzuzeigen, bevor Sie eine Änderung vornehmen merge.

Wie kann ich Git Pull in der Vorschau anzeigen
Cowboycb

Ich verwende diese beiden Befehle und kann die zu ändernden Dateien sehen.

  1. Erste Ausführung git holenes gibt eine Ausgabe wie diese (Teil der Ausgabe):

    ...
    72f8433..c8af041  develop -> origin/develop
    ...

Diese Operation gibt uns zwei Commit-IDs, die erste ist die alte und die zweite die neue.

  1. Vergleichen Sie dann diese beiden Commits mit git diff

    git diff 72f8433..c8af041 | grep "diff --git"

Dieser Befehl listet die Dateien auf, die aktualisiert werden:

diff --git a/app/controller/xxxx.php b/app/controller/xxxx.php
diff --git a/app/view/yyyy.php b/app/view/yyyy.php

Zum Beispiel app/controller/xxxx.php und app/view/jjjj.php wird geupdated.

Vergleichen von zwei Commits mit git diff druckt alle aktualisierten Dateien mit geänderten Zeilen, aber mit grep es sucht und bekommt nur die zeilen enthält diff –git von der Ausgabe.

1646253492 239 Wie kann ich Git Pull in der Vorschau anzeigen
Michael

Ich komme vielleicht zu spät zur Party, aber das hat mich zu lange genervt. Meiner Erfahrung nach möchte ich lieber sehen, welche Änderungen anstehen, als meine Arbeitskopie zu aktualisieren und mich mit diesen Änderungen zu befassen.

Das geht in die ~/.gitconfig Datei:

[alias]
        diffpull=!git fetch && git diff [email protected]{u}

Es ruft den aktuellen Zweig ab und führt dann einen Unterschied zwischen der Arbeitskopie und diesem abgerufenen Zweig durch. Sie sollten also nur die Änderungen sehen, die damit einhergehen würden git pull.

1646253493 156 Wie kann ich Git Pull in der Vorschau anzeigen
SuperNova

Diese nützlichen Befehle unten habe ich von diesem Link ausgewählt https://gist.github.com/jtdp/5443297. Dank an https://gist.github.com/jtdp

git fetch origin

# show commit logs of changes
git log master..origin/master

# show diffs of changes
git diff master..origin/master

# apply the changes by merge..
git merge origin/master

# .. or just pull the changes
git pull

915920cookie-checkWie kann ich Git-Pull in der Vorschau anzeigen?

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

Privacy policy