Как клонировать ветку в Git? [дубликат]
этот вопрос уже есть ответ здесь:
- как клонировать одну ветку в Git? 14 ответов
git clone будет вести себя копирование удаленной текущей рабочей ветви в локальную.
есть ли способ клонировать определенную ветвь самостоятельно без переключения ветвей на удаленный репозиторий?
7 ответов
см. Также другого ответа что многие люди предпочитают.
вы также можете убедиться, что вы понимаете разницу, в отличие от большинства сердитых комментаторов и downvoters. И разница в том: вызывая git clone -b branch url
вы получаете все филиалы и проверка одного. Это может, например, означать, что ваш репозиторий имеет документацию 5kB или ветвь wiki и ветвь данных 5GB. И всякий раз, когда вы хотите отредактировать свою переднюю страницу, вы может закончиться клонированием 5GB данных.
опять же, это не сказать git clone -b
это не способ достичь этого, просто это не всегда чего вы хотите достичь, когда вы спрашиваете о клонировании определенной ветви.
ответ, который я бы написал сегодня, с сегодняшним git в виду было бы
git clone --single-branch -b branch host:/dir.git
на момент написания первоначального ответа ниже, git не имел --single-branch
вариант, но давайте сохраним его для полного удовлетворения гнева пчелиный.
ответ так сильно нелюбим copypasters был такой:
git init
git remote add -t refspec remotename host:/dir.git
git fetch
git clone -b <branch> <remote_repo>
пример:
git clone -b my-branch git@github.com:user/myproject.git
С Git 1.7.10 и позже добавьте --single-branch
для предотвращения извлечения всех ветвей. Пример, с веткой OpenCV 2.4:
git clone -b opencv-2.4 --single-branch https://github.com/Itseez/opencv.git
клонировать филиала без получение другой ветки:
mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH
вот очень простой способ сделать это :)
клонировать репозиторий
git clone <repository_url>
Список всех филиалов
git branch -a
Проверьте ветку, которую вы хотите
git checkout <name_of_branch>
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
"
создайте ветку в локальной системе с этим именем. например, скажем, вы хотите получить ветку с именем "филиал-05142011"
git branch branch-05142011 origin/branch-05142011
это даст вам сообщение, как - " филиал филиал-05142011 настроить для отслеживания удаленного филиала филиала-05142011 от источника."
теперь просто проверьте ветку, как показано ниже, и у вас есть код -git checkout branch-05142011