Magit - Jak mogę sprawdzić lokalną gałąź zdalną bez wpisywania całej nazwy gałęzi?

12

Mam zdalny oddział remote-branch-long-name. Kiedy skończę kasę po ukończeniu steru, mogę pisać remote-branchi origin/remote-branch-long-namepojawiać się jako opcja. Problem polega na tym, że aby wyewidencjonować lokalnie tę gałąź, faktycznie nie mogę przejść do tej gałęzi, muszę się przełączyć remote-branch-long-name (without the origin/ prefix), ponieważ ster nie zapewnia tej opcji zakończenia, muszę ręcznie wpisać całą nazwę gałęzi.

Czy jest inna funkcja, której powinienem użyć w tym przypadku użycia, czy muszę zhakować funkcję razem?

nieregularny
źródło

Odpowiedzi:

22

Wygląda na to, że problem, który próbujesz rozwiązać, nie jest problemem, z którym się spotykasz. Git nie pozwala ci pracować lokalnie ze zdalnymi gałęziami ( origin/remote-branch-long-namewidzisz, że to tylko gałąź śledzenia; nie możesz bezpośrednio z nią pracować), a Magit prowadzi cię do zamierzonego przepływu pracy.

Ponieważ chcesz pracować origin/remote-branch-long-name, powinieneś prawdopodobnie uruchomić magit-branch-and-checkout( b c). Wybierz, origin/remote-branch-long-namea wyświetli się monit o podanie nazwy oddziału lokalnego, a domyślnie będzie to „nazwa zdalnego oddziału”. To daje lokalnemu oddziałowi potrzebę wprowadzenia zmian. Kiedy skończysz ze swoimi zmianami i push origin/remote-branch-long-nameto zaktualizuje gałąź zdalnego śledzenia.

Możesz mieć lokalne oddziały z ukośnikiem, ale użycie nazwy zdalnej w nazwie lokalnego oddziału może bardzo skomplikować sprawę. Git pamięta, z którego zdalnego oddziału został wyewidencjonowany lokalny oddział, więc nie musisz sam go śledzić.

Aby uzyskać pełniejsze wyjaśnienie niż moja odpowiedź tutaj (!), Ta strona stanowi dobry przegląd pilotów.

ebpa
źródło
8
Myślę, że tutaj rozłączenie polega na tym, że przepływ Magit różni się od przepływu git. Jeśli uruchomisz git checkout foo, ale foonie jest to gałąź, ale origin/footak, git utworzy nową gałąź fooi ustawi ją na śledzenie origin/foo. Więc git uczy myśleć: „Właśnie kasuję foo, a git robi wszystko, co konieczne”. Ale to nie działa z magitem; bieganie magit-branch-and-checkoutjest właściwą drogą.
zck
4

Od wersji magit v2.12.0 istnieje polecenie magit-branch-checkoutpowiązane z b l(gałąź lokalna Checkout), które robi dokładnie to, co chcesz. Zobacz dokument, aby uzyskać szczegółowe informacje.

Emotuje
źródło