У моего нынешнего работодателя мы используем проект с открытым исходным кодом, размещенный на Github, как компонент нашего приложения. Я работал над этим проектом, чтобы добавить некоторые необходимые нам функции и интегрировать их в наши системы сборки. Мой менеджер и я согласны с тем, что мы хотели бы представить столько работы над этим компонентом, сколько разумно, обратно в проект с открытым исходным кодом. Мой вопрос о том, каков наилучший рабочий процесс / метод для поддержания моих коммитов Git таким образом, чтобы я мог легко отделить вещи, которые имеет смысл добавлять обратно в проект с открытым исходным кодом - исправления ошибок и новые достаточно общие функции - от вещей, которые являются специфическими для нашего проекта, такие как расположение сборки и константы приложения
До сих пор я занимался частной веткой Git, где я фиксирую все свои изменения с соответствующей детализацией. Затем я использую, cherry-pick
чтобы добавить коммиты с открытым исходным кодом в основную ветку и отправить их обратно в Github.
Похоже, я должен использовать слияние для этого, чтобы я не продолжал создавать отдельные коммиты с одинаковым содержимым, но я не уверен, как это сделать, исключая коммиты для конкретной компании и поддерживая разумный рабочий процесс.
Например, я полагаю, что я мог бы зафиксировать открытые исходные тексты в основных и специфичных для компании вещах в частной ветви, а затем при необходимости объединить основной в эту ветку, оставив главную ветвь, указывающую на фиксацию перед объединением, так, чтобы я мог снова зафиксируйте в нем вещи с открытым исходным кодом, а затем снова объедините. Что кажется неловким в этом рабочем процессе, так это то, что мне нужно было бы заранее решить для всего, что я делаю, к какой ветви он принадлежал, поработать над тем, что казалось завершением, затем зафиксировать его и объединить перед тестированием. Одна из вещей, которые мне действительно нравятся в Git, это то, как легко просто делать все, что вам нужно, чтобы ваше приложение работало, а потом решать, как и где фиксировать ваши изменения. Насколько я могу судить, если вы в данный момент находитесь на ветке и уже проделали определенную работу,
Является ли то, что я делаю разумный рабочий процесс для долгосрочных взносов? Кто-нибудь может порекомендовать другой рабочий процесс, который может быть лучше, и почему он лучше?