Git: Гілка чи вилка?


17

У мене є ігровий проект, який матиме дві версії:

  1. Проста версія гри, ядро.
  2. Розширена версія гри.

Я маю першу версію у своєму загальнодоступному сховищі, і лише над цим я буду працювати. Що стосується другої версії, то два мої друзі, і я над цим працюватиму. Найважливіша частина полягає в тому, що я хочу, щоб дві версії залишилися в моєму сховищі.

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

Які тут мої варіанти? Як я можу зберігати обидві версії у своєму сховищі?


3
Вилка - це гілка, щойно зберігається в іншому місці.

@MichaelT Гаразд. Чи мають на увазі вилки злитися в якийсь момент, як гілки?
Varaquilex

22
Fork - це поняття github, а не поняття gitub. Він просто клонується і вносить його у свій рахунок. Тож клонування - це те, що ви шукаєте. Дивіться stackoverflow.com/questions/6286571/git-fork-is-git-clone
pdr

@Varaquilex Way Чи потрібно вам зберігати обидві версії в одному сховищі? Також forkсховище створить нове сховище у вашому обліковому записі.
Махді

1
Чому б просто не мати одну версію, яка може працювати в простому або розширеному режимі? Звичайно, деякі частини коду будуть активними лише у простих, а деякі - лише в просунутих, але я думаю, що багато би поділилося.
bdsl

Відповіді:


11

Мені здається, що вам потрібно два сховища, а не два відділення . Гілка - це механізм управління змінами в одному сховищі з метою врешті об'єднання їх з рештою коду.

Якщо ви дійсно хочете зберегти обидві версії подібної бази коду в одному сховищі, то ваш єдиний варіант - перейти на відділення , однак, як було сказано раніше, головна мета гілки - відокремити деякі конкретні комісії способом що вони не конфліктують з рештою коду протягом періоду розробки та об'єднують їх, коли вони готові йти.

Існують ситуації, що у сховищі є дві трохи різні гілки - наприклад, 32-розрядна та 64-бітна версія одного і того ж вихідного коду, однак я все-таки рекомендую вам перейти до відокремлених сховищ, якщо це варіант.


6

Відповідь на запитання "чи слід клонувати чи розщедритися" точно така ж, як і відповідь на це питання "чи хочу я свою особисту версію цього проекту?" так = вилка, ні = клонувати сховище.

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

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

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


Як я можу роздрібнити власний проект?
Varaquilex

виберіть сховище в github, потім натисніть вилку (кнопка вгорі праворуч для мене)
DwB

Я знаю, як це зробити. Справа в тому, що коли ви намагаєтесь клонувати власний проект, вас просто переспрямовують у сховище, як ти натискаєш кнопку оновлення. Немає додаткових сховищ, перелічених під час перегляду ваших сховищ після того, як ви спробуєте роздрібнити власний проект. Я думаю, що я збираюся зробити нове репо, скопіювати вміст іншого репо, який я хочу роздрібнити, і продовжувати працювати з іншими людьми там.
Варакілекс

0

Те, що насправді звучить так, як хочеться, - це підмодуль. Якщо ви створили перше репо (ваше приватне просте репо), а потім додаєте його як підмодуль до репортажу розширеної версії, тоді ви маєте змогу відслідковувати та перетягувати зміни до підмодулю в розширеному репо, коли ви розробляєте приватне просте репо.


1
Кілька людей знайшли час для відповіді Райана, але не знайшли часу, щоб прокоментувати чому, і така поведінка суперечить духу керівних принципів SO. Якщо у питанні ОП "ядро" були однаковими для обох дерев, маючи навколо "ядра" просту та "просунуту" обгортку, то ця відповідь, принаймні, розумна.
Скотт Прів

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