Ich würde gerne wissen, ob mein lokales Repo auf dem neuesten Stand ist (und wenn nicht, würde ich im Idealfall die Änderungen sehen).
Wie könnte ich das überprüfen, ohne git fetch
oder git pull
?
Versuchen Sie git fetch --dry-run
Das Handbuch ( git help fetch
) sagt:
--dry-run
Show what would be done, without making any changes.
git fetch --dry-run
taucht beim Laufen nichts auf?--all
?git pull
ist ungefähr gleichbedeutend mit agit fetch && git merge
. Wenn Sie den Abruf zu irgendeinem Zeitpunkt ohne das ausgeführt haben--dry-run
, haben Sie die Dinge bereits lokal abgerufen.Ergebnis:
quelle
Verwenden
git remote update
Sie diese Option zuerst , um Ihre Remote-Refs auf den neuesten Stand zu bringen. Dann können Sie eines von mehreren Dingen tun, wie zum Beispiel:git status -uno
wird Ihnen sagen, ob der Zweig, den Sie verfolgen, vor, hinter oder divergiert ist. Wenn nichts gesagt wird, sind lokal und remote identisch. Beispielergebnis:git show-branch *master
zeigt Ihnen die Commits in allen Zweigen, deren Namen auf 'master' enden (z. B. master und origin / master).Wenn Sie
-v
mit git remote update (git remote -v update
) arbeiten, können Sie sehen, welche Zweige aktualisiert wurden, sodass Sie keine weiteren Befehle benötigen.quelle
git remote update ; git status -uno
Ich habe es gelöst.git fetch --dry-run
gab keine Ausgabe, selbst in Fällen, in denen sich das Lokal hinter der Fernbedienung befand.git remote -v update
ist die Antwort für mich.Sie können
git status -uno
damit überprüfen, ob Ihre lokale Niederlassung mit der ursprünglichen Niederlassung auf dem neuesten Stand ist.quelle
git remote update ; git status -uno
den Trick gemacht! Dasgit fetch --dry-run
gab keine Ausgabe, als ich es erwartet hatte (undgit pull
Dinge ziehen würde).Nicht wirklich - aber ich sehe nicht, wie
git fetch
es wehtun würde, da es keine Ihrer lokalen Niederlassungen verändert.quelle
Eine andere Alternative besteht darin, den Status des Remote-Zweigs anzuzeigen und
git show-branch remote/branch
ihn als Vergleichgit show-branch *branch
zu verwenden, um den Zweig in allen Fernbedienungen sowie in Ihrem Repository zu sehen! Weitere Informationen finden Sie in dieser Antwort unter https://stackoverflow.com/a/3278427/2711378quelle
Sie müssen zwei Befehle eingeben:
quelle
Sie müssen ausgeführt werden,
git fetch
bevor Sie Ihr lokales Repository mit den Dateien auf Ihrem Remote-Server vergleichen können.Dieser Befehl aktualisiert nur Ihre Remote-Tracking-Zweige und wirkt sich erst dann auf Ihren Arbeitsbaum aus, wenn Sie
git merge
oder anrufengit pull
.Um den Unterschied zwischen Ihrem lokalen Zweig und Ihrem Remote-Tracking-Zweig nach dem Abrufen zu erkennen, können Sie git diff oder git cherry verwenden, wie hier erläutert.
quelle
Wenn du benutzt
Sie erhalten Feedback, ob es aktuell ist. Im Grunde müssen Sie nur die Option "ausführlich" zu der zuvor gegebenen Antwort hinzufügen.
quelle
Dies ist ohne
git fetch
oder nicht möglichgit pull
. Wie können Sie feststellen, ob das Repository "aktuell" ist oder nicht, ohne zum Remote-Repository zu gehen, um zu sehen, was "aktuell" überhaupt bedeutet?quelle
git pull
, was das OP in seiner Frage ausdrücklich verbietet.git status -uno
Dies funktioniert und man kann auchgit show-branch *master
den Status aller Hauptzweige anzeigen! Wollen Sie immer noch sagen, dass es unmöglich ist? Sie können den Status jeder Filiale anzeigen, solange Sie Zugriff auf die Fernbedienung haben!git status
nur den Status Ihrer lokalen Refs an, nicht , ob Ihre lokalen Refs mit den Remote-Refs auf dem neuesten Stand sind. Nochmals: Es ist einfach logisch unmöglich zu wissen, wie der Status des Remote-Repos ist, ohne den Status des Remote-Repos zu erhalten. Zeitraum. Dies sind nur die Grundgesetze der Raumzeit.Ich habe versucht, meine Antwort zu formatieren, konnte es aber nicht. Bitte stapeln Sie das Überlauf-Team, warum das Posten von Antworten so schwierig ist.
Trotzdem,
Antwort:
git fetch origin
git status (Sie sehen ein Ergebnis wie "Ihr Zweig liegt um 9 Commits hinter 'origin / master'")
, um auf Remote-Änderungen zu aktualisieren: git pull
quelle