Git: ветка или вилка?


17

У меня есть игровой проект, который будет иметь две версии:

  1. Простая версия игры, ядро.
  2. Продвинутая версия игры.

У меня есть первая версия в моем общедоступном репозитории, и только я буду над ней работать. Что касается 2-й версии, над ней будут работать два моих друга и я. Важнейшей частью является то, что я хочу, чтобы две версии остались в моем хранилище.

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

Какие у меня есть варианты? Как я могу сохранить обе версии в своем хранилище?


3
Вилка - это ветка, просто хранящаяся в другом месте.

@MichaelT Хорошо. Разве вилки должны быть объединены в какой-то момент, как ветви?
Varaquilex

22
Fork - это концепция github, а не git. Он просто клонирует и помещает его в свой аккаунт. Итак, клонирование - это то, что вы ищете. См. Stackoverflow.com/questions/6286571/git-fork-is-git-clone
pdr

@Varaquilex Кстати, вам нужно хранить обе версии в одном репозитории? Кроме того, forkсоздание репозитория создаст новый репозиторий в вашей учетной записи.
Махди

1
Почему бы просто не иметь одну версию, которая может работать в простом режиме или в расширенном режиме? Конечно, некоторые части кода будут активны только в простых, а некоторые части активны только в продвинутом, но я думаю, что многое будет доступно.
bdsl

Ответы:


11

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

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

Бывают ситуации, когда репозиторий имеет две слегка отличающиеся ветви - например, 32-битные и 64-битные версии одного и того же исходного кода, однако я все равно рекомендую вам использовать отдельные репозитории, если это вариант.


6

Ответ на вопрос «Должен ли я клонировать или разветвляться» точно такой же, как и ответ на вопрос «Хочу ли я иметь свою личную версию этого проекта?» да = форк, нет = клонировать репозиторий.

В git ветка - это легковесная вещь, которая часто бывает временной и может быть удалена. Вилка (на github) - это новый проект, основанный на предыдущем проекте. Вы клонируете репозиторий для работы над ним в качестве члена команды.

Многие публичные проекты заставляют вас раскошелиться на проект, чтобы сохранить рабочие изменения от основного проекта.

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


Как я могу раскошелиться на свой собственный проект?
Varaquilex

выберите репозиторий в github, затем нажмите форк (кнопка в правом верхнем углу для меня)
DwB

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

0

То, что действительно звучит так, как вы хотите, это субмодуль. Если вы создадите первое репо (ваше личное простое репо), а затем добавите его в качестве субмодуля в репозиторий с расширенными версиями, вы сможете отслеживать и извлекать изменения в субмодуле в расширенном репо по мере разработки частного простого репо.


1
Несколько человек нашли время, чтобы ответить -1 Райану, но не нашли время, чтобы дать комментарий, почему, и это поведение противоречит духу руководящих принципов SO. Если в вопросе OP «ядро» было одинаковым в обоих деревьях, имея как «простую», так и «продвинутую» оболочку вокруг ядра, то этот ответ является по меньшей мере разумным.
Скотт Прайв

Я проголосовал, но он, вероятно, должен включить объяснение, подобное вашему, которое объясняет, почему подмодуль будет хорошим, и как он будет работать. Разделение общего кода в библиотеку, которая может быть включена в качестве подмодуля, является хорошей идеей, но без указания на то, что это должно быть сделано, предложение подмодуля не сразу имеет смысл.
Шон Бертон,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.