При клонировании ветки: удаленная ветвь не найдена в исходном происхождении

Как я могу клонировать ветку из git?

Я знаю, что это глупо - спрашивать, но я уверен, что все мы были там, где нам нужно было задать глупый вопрос.

Теперь сценарий таков - у меня есть ветка с именем branch-99 и мое имя пользователя - Christoffer. Я пытаюсь клонировать мою ветку так:

git clone -b branch-99 [email protected]/admin.git

Я получаю эту ошибку.

Неустранимый: удаленная ветвь-99 не найдена в исходном источнике

Как я могу клонировать свою ветку?

Ответ 1

branch-99 не существует в удаленном репозитории. Вероятно, вы ошибочно написали имя ветки или репозиторий.

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

git clone [email protected]:Christoffer/admin.git
git branch -r

В качестве альтернативы, чтобы избежать клонирования всего репозитория только для проверки веток, вы можете использовать ls-remotes, но вам нужно запустить репозиторий и добавить удаленный вручную. Делайте это только в том случае, если хранилище огромно, и вы не намерены его использовать.

git init admin
cd admin
git remote add origin [email protected]:Christoffer/admin.git
git ls-remote --heads origin

Чтобы быть ясным, git clone -b branch-99 [email protected]:Christoffer/admin.git клонирует весь репозиторий. Он просто проверяет branch-99 а не master. Это то же самое, что...

git clone [email protected]:Christoffer/admin.git
git checkout branch-99

Этот бит сахара синтаксиса не стоит беспокоить. Наверное, это может сэкономить вам немного времени, не требуя мастера проверки.

Если вы хотите клонировать только историю одной ветки, чтобы сохранить некоторую сеть и место на диске, используйте --single-branch.

git clone --single-branch -b branch-99 [email protected]:Christoffer/admin.git

Однако это обычно не стоит проблем. Git очень эффективен в работе с дисками и сетью. И вся история этой ветки должна быть клонирована, что обычно включает большую часть репозитория.