Das Einstellen des eigenen Zweigs auf den entfernten Zweig kann in zwei Schritten erfolgen:
git fetch origin
git reset --hard origin/master
Wenn Sie den Zustand der aktuellen Verzweigung vorher speichern wollen (nur für den Fall), können Sie das tun:
git commit -a -m "Saving my work, just in case"
git branch my-saved-work
Jetzt ist Ihre Arbeit auf dem Zweig "my-saved-work" gespeichert, falls Sie sie zurückhaben wollen (oder sie später ansehen oder mit Ihrem aktualisierten Zweig vergleichen wollen).
Beachten Sie, dass das erste Beispiel davon ausgeht, dass das entfernte Projektarchiv den Namen "origin" trägt und dass der Zweig mit dem Namen "master" im entfernten Projektarchiv dem aktuell ausgecheckten Zweig in Ihrem lokalen Projektarchiv entspricht.
Übrigens sieht die Situation, in der Sie sich befinden, sehr nach einem häufigen Fall aus, in dem ein Push in den aktuell ausgecheckten Zweig eines nicht-bare Repositorys durchgeführt wurde. Haben Sie kürzlich in Ihr lokales Repository gepusht? Wenn nicht, dann ist das kein Grund zur Sorge - irgendetwas anderes muss dazu geführt haben, dass diese Dateien unerwartet verändert wurden. Andernfalls sollten Sie sich darüber im Klaren sein, dass es nicht empfehlenswert ist, in ein Nicht-Bare-Repository zu pushen (und insbesondere nicht in den aktuell ausgecheckten Zweig).
18 Stimmen
Gemäß der Ausgabe von
git status
Ihr zweiter Befehlgit reset --hard HEAD
gescheitert. Allerdings haben Sie die Ausgabe nicht eingefügt. Unvollständige Frage.5 Stimmen
Sie vermischen hier zwei Themen: 1) wie man eine lokale Verzweigung auf den Punkt zurücksetzt, an dem sich die entfernte Verzweigung befindet, und 2) wie man den Staging-Bereich (und möglicherweise das Arbeitsverzeichnis) löscht, so dass
git status
sagtnothing to commit, working directory clean
. - Bitte angeben!3 Stimmen
Ist damit Ihre Frage beantwortet? Wie zwinge ich "git pull" dazu, lokale Dateien zu überschreiben?
0 Stimmen
Das ist natürlich keine Lösung, wenn das Projektarchiv groß ist, aber bei kleinen Projektarchiven kann man mit dem Hammer zuschlagen und Git ganz vermeiden:
rm -fr ./repo; git clone repo
. der beste Weg, den ich gefunden habe0 Stimmen
Du rettest mein Leben .... Ich liebe dich... Ich war Check-out zu einer anderen Filiale, die leer war... weder Check-out passieren... zu diesem Zeitpunkt meine 1 Woche Arbeit war weg... und keine Möglichkeit, ich kann Frist erreichen. Gott sei Dank!