Mam lokalne repozytorium Git o nazwie „szkielet”, którego używam do przechowywania szkieletów projektu. Ma kilka oddziałów dla różnych rodzajów projektów:
casey@agave [~/Projects/skeleton] git branch
* master
rails
c
c++
Jeśli chcę sprawdzić gałąź główną nowego projektu, mogę to zrobić
casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/
i wszystko jest tak, jak tego chcę. W szczególności nowa gałąź główna wskazuje szkieletową gałąź główną, a ja mogę naciskać i ciągnąć, aby zmieniać zmiany w podstawowej konfiguracji projektu.
Jednak to, co nie działa, to jeśli chcę sklonować inną gałąź. Nie mogę go pobrać, więc wyciągam tylko gałąź, którą chcę, na przykład rails
gałąź, a następnie nowe repozytorium ma master
gałąź, która rails
domyślnie odpycha i pobiera z gałęzi repozytorium szkieletu .
Czy istnieje dobry sposób, aby to zrobić? A może to nie w ten sposób Git chce, żebym ustrukturyzował różne rzeczy i jestem z pewnością otwarty na to. Może powinienem mieć wiele repozytoriów, a repozytorium szkieletu Ruby on Rails śledzi repozytorium szkieletu głównego? I każdy indywidualny projekt klonujący repozytorium szkieletu Ruby on Rails.
git checkout -b newbranch origin/branchiwant
działałoby lepiej? (bez --track
opcji)
git branch -a
pokazuje