Chcielibyśmy wymusić nową politykę dla naszych projektów, zgodnie z którą gałąź główna będzie teraz nazywana gałęzią wydania, aby upewnić się, że jest bardziej jasne, w jaki sposób powinna być używana. Oczywiście będziemy mieć również rozwijanie i wydawanie gałęzi kandydatów.
Rozumiem, że mogę lokalnie zmienić nazwę gałęzi głównej, używając po prostu następujących poleceń:
git branch -m master release
Jednak dzieje się tak tylko lokalnie. Nawet jeśli popchnę to do pilota, HEAD nadal wskazuje na zdalną gałąź master. Chcę całkowicie pozbyć się gałęzi głównej i uczynić domyślną gałąź lokalną przy pierwszym klonowaniu.
Jak mogę to osiągnąć?
Wygląda na to, że ponieważ źródło znajduje się na serwerze Gitorious , otrzymuję błędy podczas usuwania gałęzi głównej. Próbuję teraz sprawdzić, czy można to zmienić, tak aby domyślną gałęzią było „wydanie”.
źródło
git branch
teraz obsługuje--move
flagę git-scm.com/docs/git-branch#Documentation/git-branch.txt---moveOdpowiedzi:
Pamiętaj, że jeśli korzystasz z GitHub , musisz najpierw zmienić swoją „domyślną” gałąź na GitHub po kroku 3:
W swoim repozytorium na github.com przejdź do Ustawienia → Oddziały → Domyślna gałąź . Zmień go, aby zwolnić, a następnie wykonaj pozostałe kroki.
źródło
! [remote rejected] branch (deletion of the current branch prohibited)
stanie się z Bitbucket. Przełącz „Repozytorium główne” na ekranie ustawień (pod ikoną koła zębatego).Sprawdź swoją główną gałąź
Utwórz gałąź wydania i przełącz się na nią:
Prześlij to na serwer
Usuń odniesienie do gałęzi głównej na serwerze
Usuń lokalną gałąź główną
źródło
Uwaga: ta odpowiedź jest przeznaczona dla samoobsługowych serwerów Git, na których masz dostęp z wiersza poleceń.
Ponieważ próba usunięcia
remote master
z klienta rzeczywiście jest niedozwolona i zakładam, że zakazywaniedenyDeleteCurrent
ma sens, nie chciałbym zmieniać tego ustawienia.Jednak odkryłem, że najłatwiejszym sposobem zmiany nazwy swojego mastera, jeśli masz dostęp z wiersza poleceń do zdalnego serwera, jest uruchomienie polecenia zmiany nazwy bezpośrednio na zdalnym.
To zadziałało dla mnie:
git branch -m master release
Teraz repozytorium zdalne używa
release
jako domyślnej gałęzi, a każdegit clone
w tym repozytorium z dowolnego klienta domyślnie pobierze gałąź wydania.Jest to bardzo pomocne również po skonfigurowaniu czystego repozytorium, aby skonfigurować je do swoich potrzeb.
źródło
Jak wcześniej stwierdzili inni, problemem jest tutaj Gitorious, który domyślnie nie pozwala na usunięcie gałęzi HEAD. Masz dwie możliwości obejścia tego problemu. Jednym z nich jest zalogowanie się na serwer Gitorious (za pomocą ssh), znalezienie repozytorium Git na serwerze plików i dodanie:
do konfiguracji.
Łatwiejszą opcją jest po prostu zmiana domyślnej gałęzi. Przejdź do repozytorium w interfejsie internetowym Gitorious, naciśnij „Edytuj repozytorium” i ustaw „Head Zmień symboliczne odniesienie HEAD w repozytorium Git wskazuje na:”. Po wykonaniu tej czynności możesz usunąć gałąź główną.
źródło
Jeśli napotkasz ten problem z GitHub , wykonaj kroki aż do usunięcia gałęzi na zdalnym. Nie pozwoli ci na to. Następnie zaloguj się do interfejsu WWW i przejdź do repozytorium Ustawienia → Oddziały → Domyślna gałąź . Zmień go na nową gałąź i wykonaj pozostałe kroki.
źródło
W idealnym przypadku chcesz skonfigurować śledzenie, więc zrób to:
Czy teraz chcesz usunąć pozostałe?
Prosty!
źródło
Ponieważ skończyłeś ze zmienianiem nazw gałęzi, ustaw HEAD
release
na zdalnyNastępnie, aby usunąć
master
oddział w trybie zdalnym, musiałbyś być administratorem, przynajmniej na GitHubie. Więcej informacji można znaleźć w tym poście .źródło