Как клонировать конкретную ветвь Git?

Git клон будет вести копирование удаленной текущей рабочей ветки в локальную.

Можно ли каким-либо образом клонировать конкретную ветку без переключения ветвей в удаленном репозитории?

1693
задан Scud 16 дек. '09 в 2:06
источник поделиться
7 ответов
git init
git remote add -t refspec remotename host:/dir.git
git fetch

Но если я правильно помню, по умолчанию клон извлекает все ветки из удаленной, а не текущей рабочей ветки.

172
ответ дан Michael Krelin - hacker 16 дек. '09 в 2:09
источник поделиться
git clone -b <branch> <remote_repo>

Пример:

git clone -b my-branch git@github.com:user/myproject.git

Альтернатива (не требуется настройка открытого ключа):

git clone -b my-branch https://git@github.com/username/myproject.git

С помощью Git 1.7.10 и более поздних версий добавьте --single-branch, чтобы предотвратить выборку всех ветвей. Пример: с ветвью OpenCV 2.4:

git clone -b 2.4 --single-branch https://github.com/Itseez/opencv.git opencv-2.4
5697
ответ дан Jorge E. Cardona 31 дек. '11 в 8:36
источник поделиться

Чтобы клонировать ветвь без извлечения других ветвей:

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
204
ответ дан Edmar Miyake 08 сент. '11 в 17:34
источник поделиться

Вот простой способ сделать это:)

Клонировать хранилище

git clone <repository_url>

Список всех ветвей

git branch -a 

Оформить требуемую ветку

git checkout <name_of_branch>
177
ответ дан superlogical 14 июля '11 в 12:42
источник поделиться
git checkout -b <branch-name> <origin/branch_name>

, например, в моем случае:

 git branch -a
* master
  origin/HEAD
  origin/enum-account-number
  origin/master
  origin/rel_table_play
  origin/sugarfield_customer_number_show_c

Итак, чтобы создать новую ветку, основанную на моей ветке enum-account-number, я делаю:

git checkout -b enum-account-number origin/enum-account-number

После того, как вы нажмете return, произойдет следующее:

Branch enum-account-number set up to track remote branch refs/remotes/origin/enum-account-number.
Switched to a new branch "enum-account-number

"

58
ответ дан dkinzer 15 нояб. '11 в 22:34
источник поделиться

Создайте ветвь в локальной системе с этим именем. например скажем, вы хотите получить ветвь с именем "branch-05142011"

git branch branch-05142011 origin/branch-05142011

Он даст вам сообщение типа "Филиал ветки 05142011, настроенный для отслеживания удаленной ветки ветки 05142011 от источника".

Теперь просто просмотрите ветку, как показано ниже, и у вас есть код -
git checkout branch-05142011

17
ответ дан PlanetUnknown 15 мая '11 в 22:20
источник поделиться
git --branch <branchname> <url>

Но завершение bash не получает этот ключ: --branch

Enjoy.

10
ответ дан savgur 07 сент. '11 в 13:16
источник поделиться

Другие вопросы по меткам