Вопрос: Как клонировать конкретную ветку Git? [Дубликат]


На этот вопрос уже есть ответ:

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

Есть ли способ клонировать конкретную ветку самостоятельно без переключения ветвей в удаленный репозиторий?


2018


источник


Ответы:


git init
git remote add -t refspec remotename host:/dir.git
git fetch

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


190



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 opencv-2.4 --single-branch https://github.com/Itseez/opencv.git

6551



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

mkdir $BRANCH
cd $BRANCH
git init
git remote add -t $BRANCH -f origin $REMOTE_REPO
git checkout $BRANCH

218



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

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

git clone <repository_url>

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

git branch -a 

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

git checkout <name_of_branch>

202



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

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

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

"


66



Create a branch on the local system with that name. e.g. say you want to get the branch named "branch-05142011"

git branch branch-05142011 origin/branch-05142011

It'll give you a message like - "Branch branch-05142011 set up to track remote branch branch-05142011 from origin."

Now just checkout the branch like below and you have the code -
git checkout branch-05142011


19



git --branch <branchname> <url>

But bash completion don't get this key: --branch

Enjoy.


11