Ich möchte eine exakte "Kopie" eines Remote-Zweigs, der in einen bestimmten lokalen Zweig "kopiert" wurde.
Angenommen, ein Teammitglied hat eine experimentelle Funktion erstellt, die es in einen Zweig eingecheckt hat, experiment
der im Remote-Repository aufgerufen wird . Ich möchte in der Lage sein, einen neuen Zweig in meinem lokalen Repository auszuchecken und den experiment
Zweig unverändert in meinen neu ausgecheckten Zweig zu "kopieren" .
Ich möchte es nicht mit meinem Code zusammenführen - ich möchte meinen Code vollständig überschreiben, damit ich einen sauberen Blick darauf werfen kann, was er im Zweig "Experiment" getan hat.
Wie würde man einen Remote-Zweig "holen" (holen / ziehen / was auch immer ...), den jemand anderes für das Remote-Repository in Ihr eigenes lokales Repository übernommen hat, auf eine Weise, die nicht versucht, eine Zusammenführung Ihres eigenen lokalen Codes durchzuführen ?
Antworten:
Wenn Sie sich nicht für das Zusammenführen interessieren:
Dies wird genau das tun, was Sie wollen: kein Zusammenführen, kein erneutes Basieren. Versetzen Sie den lokalen Zweig einfach in genau den gleichen Zustand wie die Fernbedienung.
In Ihrem Fall brauchen Sie das jedoch nicht. Sie möchten einen neuen lokalen Zweig erstellen , der denselben Status wie der Remote-Zweig hat. Geben Sie daher den Remote-Zweig an, wenn Sie den lokalen Zweig erstellen mit
git checkout
:Wenn Sie lokal denselben Namen verwenden möchten, können Sie diesen verkürzen auf:
Sie würden verwenden ,
git reset --hard
wenn Sie bereits eine lokale Niederlassung (zum Beispiel mit einigen Änderungen in it) haben, verwerfen alle Änderungen , dass Sie gemacht und stattdessen die genaue Version des Remote - Zweiges nehmen.Um sicherzustellen, dass Sie den neuesten Status der Remote-Verzweigung haben, verwenden Sie diese Option,
git fetch <remote>
bevor Sie sie auschecken oder zurücksetzen.quelle
Ich habe nicht genug Repräsentanten, um Kommentare abzugeben, aber ich möchte ein Beispiel für diejenigen hinzufügen, die immer noch Probleme haben. In meinem Beispiel verwende ich Github als Remote und kopiere den Zweig in meine Linux-Serverumgebung / mein Linux-Terminal.
Zunächst möchten Sie ausführen,
git fetch
um sicherzustellen, dass Sie auf dem neuesten Stand sind.Am Beispiel von
git checkout -b <my_new_branch> <remote>/<branch_name>
Mit einem entfernten Zweig namens "picklerick"
Ich rannte
git checkout -b picklerick remotes/origin/picklerick
Ich hätte wahrscheinlich nur
remote/picklerick
meinen Remote-Pfad verwenden können, aber das hat bei mir funktioniert.quelle