У меня есть локальный репозиторий Git под названием 'skeleton', который я использую для хранения скелетов проекта. Имеет несколько филиалов для разных видов проектов:
casey@agave [~/Projects/skeleton] git branch
* master
rails
c
c++
Если я хочу проверить основную ветку для нового проекта, я могу сделать
casey@agave [~/Projects] git clone skeleton new
Initialized empty Git repository in /Users/casey/Projects/new/.git/
и все как я хочу. В частности, новая основная ветвь указывает на основную ветвь скелета, и я могу толкать и тянуть, чтобы перемещаться вокруг изменений в базовой настройке проекта.
Однако не работает, если я хочу клонировать другую ветку. Я не могу получить его так, чтобы я просто вытягивал нужную ветку, например, rails
ветку, и тогда в новом хранилище есть master
ветвь, которая rails
по умолчанию выталкивает и извлекает из ветви хранилища скелетов .
Есть ли хороший способ сделать это? Или, может быть, это не тот способ, которым Git хочет, чтобы я структурировал вещи, и я, безусловно, открыт для этого. Возможно, у меня должно быть несколько репозиториев, с хранилищем скелетов Ruby on Rails, отслеживающим главное хранилище скелетов? И любой отдельный проект, клонирующий хранилище Ruby on Rails.
git checkout -b newbranch origin/branchiwant
работать лучше? (без --track
опции)
git branch -a
показывает?