Sie müssen verstehen, dass ein Git-Repository nicht nur ein Baum von Verzeichnissen und Dateien ist, sondern auch einen Verlauf dieser Bäume speichert - die möglicherweise Zweige und Zusammenführungen enthalten.
Beim Abrufen aus einem Repository kopieren Sie alle oder einige der Zweige dort in Ihr Repository. Diese befinden sich dann in Ihrem Repository als "Remote-Tracking-Zweige", z. B. Zweige mit dem Namen " remotes/origin/master
oder".
Durch das Abrufen neuer Commits aus dem Remote-Repository wird nichts an Ihrer lokalen Arbeitskopie geändert.
In Ihrer Arbeitskopie wird normalerweise ein Commit ausgecheckt, das aufgerufen wird HEAD
. Dieses Commit ist normalerweise die Spitze einer Ihrer lokalen Niederlassungen.
Ich denke, Sie möchten Ihren lokalen Zweig (oder vielleicht alle lokalen Zweige?) Auf den entsprechenden Remote-Zweig aktualisieren und dann den neuesten Zweig überprüfen.
Um Konflikte mit Ihrer Arbeitskopie (die möglicherweise lokale Änderungen aufweisen) zu vermeiden, bereinigen Sie zunächst alles, was nicht versioniert ist (mit git clean
). Anschließend checken Sie den lokalen Zweig aus, der dem Remote-Zweig entspricht, auf den Sie aktualisieren möchten, und git reset
wechseln mit diesem zum abgerufenen Remote-Zweig. ( git pull
Integriert alle Aktualisierungen des Remote-Zweigs in Ihren lokalen Zweig, die möglicherweise dasselbe tun, oder erstellt ein Zusammenführungs-Commit, wenn Sie lokale Commits haben.)
(Aber dann verlieren Sie wirklich alle lokalen Änderungen - sowohl in der Arbeitskopie als auch in lokalen Commits. Stellen Sie sicher, dass Sie dies wirklich wollen - andernfalls verwenden Sie besser einen neuen Zweig, dies speichert Ihre lokalen Commits. Und verwenden Sie diese Option git stash
, um Änderungen zu speichern, die noch nicht festgeschrieben sind .)
Bearbeiten:
Wenn Sie nur einen lokalen Zweig haben und einen Remote-Zweig verfolgen, müssen Sie nur etwas tun
git pull
aus dem Arbeitsverzeichnis.
Dadurch wird die aktuelle Version aller nachverfolgten Remote-Zweige abgerufen und der aktuelle Zweig (und das Arbeitsverzeichnis) auf die aktuelle Version des Remote-Zweigs aktualisiert, den er verfolgt.