Frage

Ich habe gerade angefangen, Git zu lernen, und Das Tutorial, das ich benutze, sagt, dass beim Klonen von Remote-Repositories das Umschalten in einen Remote-Zweig ein großes Nein-Nein ist. Das heißt - wenn ich ein Repository mit Zweignamen kloniert habe branch1, und ich möchte daran arbeiten, ich muss benutzen

git checkout --track -b branch1 origin/branch1

um es zu verfolgen. Als ich jedoch versuchte zu verwenden

git checkout branch1

Git antwortete

Branch branch1 set up to track remote branch branch1 from origin.
Switched to a new branch 'branch1'

Mein gesunder Menschenverstand sagt mir also, dass die Entwickler von Git, seit dieses Tutorial diese Falle geschrieben wurde, die Entwickler behoben und es geschafft hat. Ich kann jedoch keinen Hinweis auf diese Änderung in den Versionshinweise oder in einer Google -Suche finden.

Also, haben sie es behoben? Ist es jetzt sicher, diese Fernzweige einfach zu überprüfen? Oder habe ich die Warnung in diesem Tutorial missverstanden, und es bezog sich auf eine andere Fallstricke, von der ich mich ansehen sollte?

War es hilfreich?

Lösung

Du nicht Überprüfung einer Remote -Filiale.

Auschecken branch1 Ist nicht dasselbe wie das Überprüfen der "Remote -Zweigstelle". Der folgende Befehl versucht, einen lokalen Zweig zu überprüfen, der nicht vorhanden ist:

git checkout branch1

Während der folgende Befehl überprüft, auf das der Commit von der Remote -Zweigstelle hinweist:

git checkout origin/branch1

das führt zu a abgelöster Kopf, Möglicherweise warnte die Fallstricke, vor der das Tutorial warnt.

Git erstellt automatisch eine lokale Filiale und richtet ihn ein, um eine gleichnamige Fernbedienung zu verfolgen, wenn Sie versuchen, einen Zweig zu überprüfen, der nicht lokal existiert, aber auf einer Fernbedienung einen gleichnamigen Zweig enthält.

Andere Tipps

Aus Documentation/RelNotes/1.6.6.txt:

  • "Git Checkout Frotz" Wenn es keinen lokalen Zweig "Frotz" gibt, aber es gibt nur eine Fernverfolgungszweig "Frotz" wird als Anfrage angenommen, den benannten Zweig am entsprechenden Remote -Tracking -Zweig zu starten.

Also ja, Git -Entwickler haben den Prozess ein wenig vereinfacht: Sie müssen nicht angeben --track -b Um eine lokale Remote-Tracking-Filiale zu erstellen. IIRC beschwerte sich vor dieser Änderung über einen fehlenden lokalen Zweig "Frotz".

Wie Meagar sagt, ist die Überprüfung abgelegener Zweige immer noch möglich, indem Sie die verwenden git checkout origin/branch1 Syntax: Es ist in Ordnung, dies zu tun, wenn Sie sich nur umsehen möchten, aber Sie sollen nicht dauerhafte Änderungen an ihnen vornehmen. Hier ist die Warnung, die Git ausdruckt, wenn Sie sich einen Remote -Zweig ansehen:

$ git checkout origin/master
Note: checking out 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at a48aafd... Merge branch 'maint'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top