Nur:
git clone $url
Im Ernst! Das ist der beste Weg.
Sie könnten alle Arten von git reset
und git branch
Befehle ausführen, um die Refs zu verschieben, aber der einzige Zweck wäre, Ihre Commits irgendwo in Ihrem lokalen Repository für zukünftige Referenz zu halten. Wenn das das Ziel ist, behalte einfach das gesamte Repository und kloniere den Ursprung neu.
Um alle Änderungen auf nur einen Zweig zu akzeptieren, foo
:
git checkout foo
git fetch origin +refs/heads/foo:refs/remotes/origin/foo
git reset refs/remotes/origin/foo
foo
jetzt auf dem gleichen wie foo
auf origin
begehen verweisen. Wenn Sie die Dateien in Ihrem Arbeitsverzeichnis löschen möchten, fügen Sie --hard
zu git reset
hinzu. Wenn Sie zuerst zusammenführen möchten, ersetzen Sie fetch
durch pull
.
Möglicherweise haben Sie in Ihrem lokalen Repo eine Reihe von dangling commits, die möglicherweise irgendwann aufräumen, aber für eine Weile können Sie noch über den Reflog darauf zugreifen.
Gut zu wissen :-) –
Es gibt ein riesiges Problem damit: Ich habe viele * Ergänzungen * zum funktionierenden Baum. Ich möchte nur alle Änderungen akzeptieren/anwenden, die an der Fernbedienung vorgenommen wurden. Ich möchte nicht den ganzen Zustand meiner gegenwärtigen Arbeit wegwerfen. Das funktioniert also nicht als Antwort für mich. – rfay
@Randy, das ist eine andere Frage, aber eine gute Frage. – cdunn2001