Как создать копию ветки с удаленного репозитория?
4 Answers
Современные версии Git позволяют делать это гораздо проще:
git checkout branchname
Работает, когда:
- Есть удалённая ветка
origin/branchname - Но нет локальной ветки с именем
branchname
Допустим, есть удаленная ветка feature, которой у вас ещё нет локально.
$ git branch --all
* master
remotes/origin/HEAD -> origin/master
remotes/origin/feature
remotes/origin/master
Достаточно этого:
$ git checkout feature
Branch feature set up to track remote branch feature from origin.
Switched to a new branch 'feature'
Проверяем:
$ git branch --all
* feature
master
remotes/origin/HEAD -> origin/master
remotes/origin/feature
remotes/origin/master
Новая ветка действительно отслеживает удалённую:
git branch -vv
* feature ed185c8 [origin/feature] extract environment
master 4db6d3b [origin/master] stylecheck-driven syntax improvements
- 34,094
Эта команда создаст локальную копию удаленной ветки
git checkout -b remote_branch origin/remote_branch
- 6,442
- 1
- 21
- 29
-
1Разве она не копирует ветку существующего репозитория просто удаленным вариантом? – Aios Feb 15 '13 at 11:16
-
1По-моему этого вопрощающий и хотел добиться, или я неправильно понял вопрос? – AlexDenisov Feb 15 '13 at 11:26
-
1Дело в том что если руководствоваться вашей командой - то клонируется с этого же оригина ветка с удаленного командой git checkout branch
если же самому приходиться ветку создавать - то ее нужно создать уже на удаленном хосте
а с удаленного так или иначе нужно брать ветку вариантом ниже... ибо оригин - это есть тот что есть репо вообще...
может и я вопрос не правильно понял...
– Aios Feb 15 '13 at 11:42 -
3
Шаг 1. Проверьте настройки "remote.origin.fetch", должно быть так:
$ git config --get remote.origin.fetch
+refs/heads/dev_branch:refs/remotes/origin/dev_branch
Шаг 2. Измените «remote.origin.fetch», чтобы получить (fetch) все ветки:
$ git config remote.origin.fetch "+refs/heads/:refs/remotes/origin/"
$ git config --get remote.origin.fetch
+refs/heads/:refs/remotes/origin/
Затем вы можете попробовать git pull или git checkout dev_branch, чтобы получить всю ветку.
- 364
git remote add workflow git://github.com/someuser/somerepo.git
git fetch workflow
git checkout -b remote_branch workflow/somebranch
более ли менее подходящий вариант для удаленного другого не относящегося к вашему репозиторию и создание одной из его веток отдельной веткой в вашем репо..
- 475
- 5
- 13
и потом например
а где второй вопрос ?
– zb' Feb 15 '13 at 11:08