У мого нинішнього роботодавця ми використовуємо проект з відкритим кодом, розміщений на Github, як складову нашої програми. Я працюю над цим проектом, щоб додати деякі функції, які нам потрібні, та інтегрувати його в наші системи побудови. Ми з менеджером погоджуємось, що ми хотіли б подати стільки своєї роботи над цим компонентом, наскільки це розумно повернутись до проекту з відкритим кодом. Моє запитання полягає в тому, що найкращий робочий процес / техніка полягає в тому, щоб підтримувати мої програми Git таким чином, щоб я міг легко відокремити речі, які мають сенс додати до проекту з відкритим кодом - виправлення помилок та нові функції, які є достатньо загальними - від речей, специфічних для нашого проекту, наприклад, місця розташування та константи додатків.
Що я робив до цих пір, це підтримувати приватну гілку Git, де я вношу всі свої зміни з відповідною детальністю. Потім я використовую cherry-pick
для додавання відкритих джерел зобов’язань у головну гілку і передаю їх назад у Github.
Здається, я повинен використовувати об'єднання для цього, щоб я не продовжував створювати окремі коміти з однаковим вмістом, але я не впевнений, як це зробити, виключаючи конкретні фірмові зобов’язання та зберігаючи розумний робочий процес.
Наприклад, я припускаю, що я можу зробити приватні відділення з відкритим вихідним кодом на головних і конкретних компаніях, а потім об'єднати майстер у цю гілку за необхідності, залишаючи головну гілку вказувати на фіксацію перед об'єднанням, щоб я міг знову зробити це відкритим джерелом, а потім знову злитися. Те, що здається незручним у цьому робочому процесі, полягає в тому, що мені потрібно заздалегідь визначитися з усім, що я роблю, до якої галузі належав, попрацювати над тим, що здавалося завершенням, а потім зробити це і об'єднати перед тестуванням. Однією з речей, які мені дуже подобаються в Git, є те, як легко робити все необхідне, щоб ваша програма працювала, а потім вирішити, як і де здійснити зміни. Наскільки я можу сказати, якщо ви зараз на гілці і хочете трохи виконати роботу,
Чи є те, що я роблю розумний робочий процес для довгострокових внесків? Чи може хтось порекомендувати інший робочий процес, який може бути кращим, і чому це краще?