Magit - Wie kann ich eine Remote-Filiale lokal auschecken, ohne den gesamten Filialnamen einzugeben?


12

Ich habe eine entfernte Niederlassung remote-branch-long-name. Wenn ich die Kasse mit Abschluss des Helms starte, kann ich tippen remote-branchund origin/remote-branch-long-namewerde als Option angezeigt . Das Problem ist, dass ich zum lokalen Auschecken dieses Zweigs nicht zu diesem Zweig wechseln kann. Ich muss zu diesem Zweig wechseln remote-branch-long-name (without the origin/ prefix), da das Ruder dies nicht als Abschlussoption bereitstellt. Ich muss den gesamten Zweigstellennamen manuell eingeben.

Gibt es eine andere Funktion, die ich für diesen Anwendungsfall verwenden sollte, oder muss ich eine Funktion zusammen hacken?

Antworten:


22

Es klingt so, als ob das Problem, das Sie lösen möchten, nicht das Problem ist, auf das Sie stoßen. Mit Git können Sie nicht lokal mit Remote-Zweigen arbeiten (der origin/remote-branch-long-nameangezeigte Zweig ist nur ein Tracking-Zweig; Sie können nicht direkt damit arbeiten), und Magit führt Sie zum beabsichtigten Workflow.

Da Sie mit arbeiten möchten, origin/remote-branch-long-namesollten Sie wahrscheinlich magit-branch-and-checkout( b c) ausführen . Wählen Sie origin/remote-branch-long-nameund Sie werden aufgefordert, einen lokalen Zweigstellennamen einzugeben. Standardmäßig wird "Remote-Zweigstellen-Langname" verwendet. Dies gibt Ihnen die lokale Niederlassung, die Ihre Änderungen vornehmen muss. Wenn Sie mit Ihren Änderungen fertig sind und darauf klicken, origin/remote-branch-long-namewird der Remote-Tracking-Zweig aktualisiert.

Sie können lokale Zweige mit einem Schrägstrich haben, aber die Verwendung eines Remote-Namens in einem lokalen Zweignamen kann die Dinge sehr verwirrend machen. Git merkt sich, von welcher Fernbedienung ein lokaler Zweig ausgecheckt wurde, sodass Sie ihn nicht selbst verfolgen müssen.

Für eine vollständigere Erklärung als meine Antwort hier (!) Finden Sie auf dieser Seite einen guten Überblick über Fernbedienungen.


5
Ich denke, die Trennung hier ist, dass der Magit-Fluss sich vom Git-Fluss unterscheidet. Wenn Sie ausführen git checkout foound fookein Zweig ist, aber es origin/fooist, erstellt git einen neuen Zweig foound setzt ihn auf Verfolgung origin/foo. Git lehrt dich also zu denken "Ich checke nur aus foound Git macht alles Notwendige". Aber das funktioniert nicht mit Magie; Laufen magit-branch-and-checkoutist der richtige Weg.
zck

4

Seit magit v2.12.0 gibt es einen Befehl magit-branch-checkout, der an b l(Checkout local branch) gebunden ist und genau das tut, was Sie wollen. Weitere Informationen finden Sie im Dokument .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.