
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.

Greg Hewgill
Nachdem Sie a git fetch
mach 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.)

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.

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
.

Cowboycb
Ich verwende diese beiden Befehle und kann die zu ändernden Dateien sehen.
-
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.
-
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.

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
.

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
9159200cookie-checkWie kann ich Git-Pull in der Vorschau anzeigen?yes
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