Чи повинні співробітники у приватному сховищі Github роздвоювати репо?


15

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

Що нам незрозуміло - це як розділити кожну нашу роботу.

Я думаю, що нам потрібно зробити:

  1. Кожному з нас потрібно розщедрити сховище
  2. Коли ми готові надіслати свій код, ми надсилаємо запит на тягнення до РЕПО керівника проекту, який може одночасно використовувати це як можливість зробити перевірку коду.

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


1
Так. Зробіть це так, як ви запропонували тут, лише створіть команду і зробіть репо команду "майстром" репо. Усі роблять PR, включаючи керівника проекту.
RubberDuck

Відповіді:


7

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

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

У невеликій, довіреній команді, це не обов’язково. Для того, щоб різні люди не могли отримувати один одного, можна дотримуватися такої стратегії, як Git Flow: Кожна невелика функція реалізована в окремій гілці функцій. Коли функція завершена, вона об'єднується в головну гілку. Більшість команд поєднують це із запитом на виклик або переглядом коду за домовленістю, але їм достатньо довіри, щоб пропустити це, якщо потрібно. Оскільки окремі репости призведуть до того, що розробник опублікував їх поточний стан на своїх роздвоєних, але видимих ​​команді репозиціях, в єдиному загальному репо-ренесі вони перенесуть свої зміни в окрему галузь функції. Робота над усіма розробниками на магістралі / магістралі сильно перешкоджає більшості робочих процесів.

Різниця в основному полягає лише в управлінні доступом, а не стільки в реалізованому робочому процесі. Ви можете виконувати робочі процеси на основі запиту за допомогою будь-якого налаштування. З точки зору raw Git, між форкою та гілкою немає великої різниці - будь-який підхід по суті розділяє історію проекту та дозволяє додавати комісії, не зачіпаючи інші гілки / вилки. Враховуючи це, було б набагато краще поділитися єдиним репо, коли в довіреній закритій групі.


1
Тільки для того, щоб швидко відзвучити те, що говорить @amon, я працював в організації, де кожному розробнику потрібно було розщедритися від головного репо, що всі ми вважали лише зайвим і незграбним додатковим кроком. Я ніколи не розумів, чому це потрібно, але наша оперативна команда не буде обговорювати це. Процес полягав у тому, що: фіксувати -> push -> запит на тягнення -> чекати -> почекати ще трохи -> намагатися привернути увагу команди ops на IRC -> перейти до хлопців-операторів і попросити їх переглянути запит на тягнення -> зачекайте -> код інтегрований -> повторити.
DaveyDaveDave

1
Я справді перешкоджаю цьому робочому процесу. У мене виникли дуже погані конфлікти злиття з двома розробниками, обидва підштовхують безпосередньо до канонічного репо. Не кажучи вже про те, що все-таки краще, щоб хтось переглянув ваш код. Набагато простіше подавати запити на тягу, якщо у вас є виделка, і є одне канонічне репо-проект. Так Так. Я знаю, це не "розподілено". Що б там не було. На моєму досвіді модель fork & PR працює краще.
RubberDuck

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

Проблема полягає в тому, хто визначає, коли функція готова перейти в майстер? Я також вважаю безладним працювати з гілками; 100 сотень гілок на одному репо, і більшість з них не розпущені або напівфабрикати, чому вони взагалі існують, якщо вони навіть не готові бути об'єднаними? Управління доступом на 100% стосується робочого процесу, ця відповідь лише наполовину хороша.
Рудольф Олах

5

Це спрацювало б, або ви можете використовувати метод розгалуження, коли кожен вкладник має власні гілки, які, коли команда погоджується, об'єднуються з головним.


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