Могу ли я дважды разветвить репозиторий других лиц на свой аккаунт?

На GitHub я не могу понять, как я могу дважды разветвить репо на одну учетную запись.

Так что есть репо от Bob/CoolFramework

Я разветвляю его на Jeremy/MyShooter и начинаю создавать игру.

Теперь я также хочу сделать форк для Jeremy/MyRPG, чтобы создать еще одну новую игру.

Когда я пытаюсь разветвить CoolFramework во второй раз, меня просто перебрасывает в MyShooter.

Итак, варианты, которые я могу придумать: A) я неправильно использую Git B) это невозможно в Git C) я просто не видел вариант на Github


person Jeremy    schedule 09.10.2013    source источник
comment
Похоже, вы не должны разветвляться. Разветвление — это модификация проекта, а не построение на его основе.   -  person bengoesboom    schedule 09.10.2013
comment
Можете ли вы показать точные команды, которые вы используете?   -  person rahmu    schedule 09.10.2013
comment
В настоящее время я просто делаю это из внутренней реализации github.com. @bengoesboom, я хочу построить базовый проект. Должен ли я делать что-то кроме fork?   -  person Jeremy    schedule 09.10.2013
comment
Что плохого в том, чтобы просто клонировать «родительский» репозиторий, а затем отправить его на другой удаленный сервер?   -  person Martin Bean    schedule 09.10.2013
comment
@JeremyLee Трудно сказать, не зная точно, чего вы пытаетесь достичь. Если вы не изменяете структуру, используйте подмодуль. Если вы хотите изменить фреймворк и использовать одни и те же модификации в обеих играх, разветвите его, а затем включите свой форк в качестве подмодуля. Если вы просто создаете совершенно разные вещи, основанные на фреймворке, но значительно изменяете фреймворк, вы можете захотеть клонировать   -  person bengoesboom    schedule 09.10.2013
comment
Это все еще кажется ограничением github. Другой пример: предположим, я думаю, что одно репо должно быть реорганизовано в два отдельных репо. Я бы хотел, чтобы оба они были разветвлены из ... но Github, по-видимому, не поддерживает это. Просто ограничение пользовательского интерфейса, на самом деле.   -  person John Clements    schedule 26.06.2016


Ответы (2)


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

  1. Начните с создания Jeremy/MyShooter и Jeremy/MyRPG на Github. Держите их пустыми.

  2. Дважды клонируйте исходный проект в своей системе, дав ему разные имена.

    $ git clone http://github.com/Bob/CoolFramework MyShooter
    $ git clone http://github.com/Bob/CoolFramework MyRPG
    
  3. Теперь у вас есть 2 разных локальных репозитория, указывающих на один и тот же источник. Вы должны удалить источник и указать на свой как на удаленный:

    $ cd MyShooter
    $ git remote remove origin
    $ git remote add origin http://github.com/Jeremy/MyShooter.git
    $ git push -u origin master
    
  4. Не забудьте сделать то же самое для MyRPG

person rahmu    schedule 09.10.2013
comment
Спасибо рахму. В итоге я не использовал подмодули и просто клонировал репо, как вы сказали. Фреймворк, который я собирался разветвить, был действительно создан для того, чтобы на нем основываться, а не просто использовать подмодуль. - person Jeremy; 10.10.2013
comment
Есть ли способ сделать запрос на вытягивание, когда вы это сделаете? - person megawac; 18.01.2014
comment
remove&add происхождение такое же, как set-url? - person nn0p; 13.09.2017

Судя по всему, вы используете фреймворк в игре, которую создаете. Если вы просто используете фреймворк, а не меняете его, создайте новый проект для своей игры и включите в него проект фреймворка как подмодуль.

Предполагая, что вы не изменяете фреймворк, вы не должны его разветвлять. Разветвление проекта предназначено для модификации (часто с целью отправки вашего форка для объединения с исходным проектом).

person bengoesboom    schedule 09.10.2013