Вилка из ветки в github - PullRequest
       59

Вилка из ветки в github

32 голосов
/ 10 февраля 2012

Есть ли способ раскошелиться на определенную ветку на GitHub?... Например, у Moodle есть много веток (1.9, 2.0 ... и так далее).Можно ли выполнять клон только из ветки 1.9, а не из основной ветки всегда?Можно ли клонировать конкретную ветку на мой компьютер?

Ответы [ 7 ]

23 голосов
/ 14 февраля 2013

Я пока не знаю нативного способа, но вы можете сделать это, следуя этому рецепту:

  1. Поместите нужный репозиторий (называемый «апстрим») на веб-сайте GitHub в вашу рабочую область..
  2. Запустите настольное приложение GitHub и клонируйте репозиторий на свой ПК.
  3. Используйте настольное приложение GitHub, чтобы открыть оболочку в репозитории.(Команды git недоступны из PowerShell по умолчанию, если вы не настроите это вручную.)
  4. Установите исходный репозиторий как восходящий:

    git remote add upstream https://github.com/{user}/{source-repo}.git
    
  5. Получить полный обратный репозиторий.(Прямо сейчас у вас есть только копия его основной ветви.)

    git fetch upstream
    
  6. Сделайте так, чтобы ваша файловая система скопировала нужную ветку и дала ей любое имя:

    git checkout upstream/{branch-in-question}
    git checkout -b temporary
    
  7. Опубликуйте репо с помощью настольного приложения GitHub.

  8. На веб-сайте GitHub откройте репозиторий и нажмите «Настройки».
  9. Измените«Ветвь по умолчанию» на «временный».(Просто измените выпадающее меню, вам не нужно нажимать кнопку «Переименовать».)
  10. Вернитесь в свой репозиторий, перейдите на вкладку «Ветви», теперьВы можете удалить «основную» ветвь.
  11. Удалите основную ветвь в вашей оболочке и создайте новую основную ветвь:

    git branch -d master
    git branch master
    git checkout master
    git -d temporary
    
  12. Еще раз,опубликуйте репозиторий с помощью настольного приложения GitHub.

  13. На веб-сайте GitHub откройте репозиторий и нажмите «Настройки».
  14. Измените «Ветвь по умолчанию» обратно на (новую)ветка 'master'.
  15. Вернитесь в свой репозиторий, перейдите на вкладку 'ветки', теперь вы можете удалить «временную» ветку.

Это должно быть то, что вы былинаходясь в поиске.Возможно, GitHub предоставит более удобный способ сделать это в будущем (например, если щелкнуть «Fork» в ветке проекта, это приведет именно к такому поведению).

8 голосов
/ 10 февраля 2012

Клонирование означает, что вы создаете копию всего хранилища в своей учетной записи, включая все ветви и теги.Однако вы можете свободно переключать и отслеживать ветви, как вам нравится.

1 голос
/ 01 июня 2017

Для тех, кто не любит работать с командной строкой.Вот простое руководство по использованию настольного клиента для GitHub:

  1. Нажмите кнопку с форком репо на GitHub.com: step1

  2. Убедитесь, что у вас установлен настольный клиент установлен

  3. Нажмите эту кнопку: step2

  4. Клон репо

step3

В клиенте для настольных ПК выберите нужную ветку

step4

Выберите ветку, над которой вы хотите работать, и все готово

step5

1 голос
/ 19 октября 2015

Да, вы можете клонировать одну ветку.Например, у вас есть ветка с именем release1.0.Если вы хотите клонировать эту ветку на свой компьютер, используйте следующую строку кода:

$ git clone git@bitbucket.org:git_username/git_repository_example -b release1.0 --single-branch
0 голосов
/ 08 октября 2018

Быстрый альтернативный подход заключается в создании собственного нового репо .

Перейдите на https://github.com/new и сделайте новый репо. Не инициализируйте с помощью README.

Прокрутите вниз, чтобы получить git remote

enter image description here

Тогда:

git remote rm origin
git config master.remote origin
git config master.merge refs/heads/master
// Run code from above image
git push --set-upstream origin yourbranchname

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

0 голосов
/ 24 ноября 2017

Переключитесь на нужную вам ветку в репо-источнике. Нажмите «Форк».Вы получите разветвленный мастер и ветвь, в которой находитесь. Я не знаю, как это работает с большим количеством веток, но для моих нужд сработало довольно хорошо.

0 голосов
/ 16 сентября 2016

Я использую bitbucket, но я уверен, что это будет работать и для GitHub.

  1. Создать новый репозиторий
  2. Оформить ветку с помощью GitExtensions
  3. Нажмите Push, чтобы открыть диалоговое окно Push
  4. Установить целевой URL для нового репозитория
  5. Установить целевую ветвь на "master"
  6. Нажмите

Ваш новый репозиторий будет иметь полную историю только одной ветки (не все ветки, как у разветвления).

GitExtensions Push Dialog

...