Рабочий процесс Git: отправка пул-запросов в апстрим и использование коммитов

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

Я читал некоторое время, но не понял, лучшая практика. Давайте использовать этот конкретный пример, но это общий вопрос рабочего процесса.

Аналогично предложению в рабочем процессе Git: разветвление проекта и поддержка локальной измененной копии, но в курсе, я создал ветку magiclabs/alchemy_cms (upstream), вне ветки 3.0-stable, а затем создал другую ветку на основе Выкл 3.0-стабильный, чтобы сохранить все пользовательские изменения. Давайте назовем эту ветку кастомной.

Теперь вопрос в том, когда я хочу внести новое изменение и зафиксировать его в репозитории magiclabs / alchemy_cms в восходящем потоке, каков наилучший способ сделать это, чтобы я мог создать запрос на извлечение для слияния с мастером И также начать использовать это зафиксировать в пользовательской ветке немедленно. PR может быть не объединен немедленно, может нуждаться в изменениях или может быть не принят.

То, что я делал, - это создание ветки функций от master в разветвленном репо, чтобы получить чистый pull-запрос для отправки в апстрим. Как только я отправляю запрос на удаление, я git cherry-pick которые передают его в пользовательскую ветку.

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

Есть лучший способ сделать это?

1 ответ

Решение

То, что я делал [чтобы внести вклад в апстрим], - это создание ветки функций от мастера в разветвленном репо, чтобы получить чистый запрос на выгрузку для апстрима. Как только я отправляю запрос на извлечение, я делаю комиксы cherry-pick, чтобы передать его в пользовательскую ветку.

Это правильный способ сделать это. Таким образом я управляю проектами в "пользовательских" ветках. Когда вы периодически объединяете ветку upstream, у нее будет 2 коммита для одной и той же операции... ничего страшного.

Если ваш PR должен был быть переработан и больше не соответствует, у вас возникнет конфликт во время слияния, но это неизбежная стоимость продвижения вперед в направлении, не одобренном лидерами проекта.

Другие вопросы по тегам