Ich habe meine örtliche Niederlassung komplett verlassen und möchte von vorne anfangen. Die Version auf dem Server ist korrekt.
Ich möchte nicht von vorne anfangen, ich möchte meine lokale Geschichte nutzen, um meinen großen Fehler zu beheben. (Ich kann, wenn ich muss.)
git fetch branchname
und git pull branchname
nicht arbeiten. Die Meldung, die ich erhalte, ist " aktuell ". Meine lokale Version stimmt jedoch nicht mit der des Servers überein.
git pull origin/branchname
gibt mir einen " nicht gefunden " Fehler.
Antworten:
Erstellen Sie zunächst einen neuen Zweig an der aktuellen Position (falls Sie Ihren alten "vermasselten" Verlauf benötigen):
Aktualisieren Sie Ihre Liste der Remote-Zweige und synchronisieren Sie neue Commits:
Setzen Sie dann Ihren Zweig auf den Punkt zurück, an dem Ursprung / Zweig auf Folgendes zeigt:
Seien Sie vorsichtig , dies entfernt alle Änderungen von Ihrem Arbeitsbaum !
quelle
git fetch origin
vor dem Zurücksetzen zu tun istorigin/branch
. Noch nie.git reset
während HEAD auf einen Zweig zeigt, folgt dieser Zweig.Was ich mache, wenn ich meinen lokalen Zweig durcheinander bringe, ist, dass ich meinen defekten Zweig einfach umbenenne und den vorgelagerten Zweig erneut auschecke / verzweige:
Wenn Sie sicher sind, dass Sie nichts von Ihrem alten Zweig möchten, entfernen Sie es:
Aber normalerweise lasse ich die alte Filiale vor Ort, nur für den Fall, dass ich etwas drin habe.
quelle
git checkout -b <branch> --track <remote>/<branch>
Funktioniert Ihr Befehl genauso gut, ohne den--track
?branch.autoSetupMerge
(die meiner Meinung nach standardmäßig true ist) macht das--track
implizit. Und ja, in all meinen Git-Setups muss ich nicht explizit,--track
wenn ich ein machecheckout -b
, sondern YMMV.Ihre lokale Niederlassung hat wahrscheinlich Änderungen daran, die Sie verwerfen möchten. Dazu müssen Sie den Zweigkopf
git reset
auf die letzte Stelle zurücksetzen, an der Sie vom Zweig des vorgelagerten Repos abgewichen sind. Verwendengit branch -v
Sie diese Option, um die sha1-ID des Upstream-Zweigs zu ermitteln und Ihren Zweig mit diesem zurückzusetzengit reset SHA1ID
. Dann sollten Sie in der Lage sein, diegit checkout
in Ihrem Verzeichnis verbleibenden Änderungen zu verwerfen.Hinweis: Tun Sie dies immer auf einem gesicherten Repo. Auf diese Weise können Sie sicher sein, dass es richtig funktioniert hat. Wenn dies nicht der Fall ist, können Sie auf ein Backup zurückgreifen.
quelle
Dies dient dazu, alle Ihre lokalen Änderungen am Ursprungskopf zurückzusetzen
quelle