Отправка нескольких запросов извлечения в Git с помощью Github (общий поток) - PullRequest
6 голосов
/ 23 сентября 2011

Я ни в коем случае не эксперт по git, поэтому хочу убедиться, что следующий поток хорош:

  1. Найти репо, в которое я хочу внести свой вклад. (оригинал репо)
  2. Форк оригинального репо на github. (моя вилка)
  3. Клон моей вилки на моей машине, вне какого-либо проекта, над которым я работаю. (изолированный клон)
  4. Включить мой форк в качестве подмодуля проекта, в котором я хочу его использовать. (клон подмодуля)
  5. Создайте ветку объектов на изолированном клоне и добавьте некоторые элементы.
  6. Создание еще одной ветви функций и других несвязанных вещей.
  7. Добавьте оригинальное репо в качестве пульта к моему изолированному клону .
  8. Перебазирование в оригинальное репо .
  9. Нажмите и перетащите две ветви функций в мастер моего изолированного клона .
  10. Извлечь из клона субмодуля , который находится в моем проекте.
  11. Отправка запросов на извлечение в исходное репо из каждой ветви функций в изолированном клоне .
  12. Запросы на извлечение принимаются.
  13. Перебазируйте ветку master моей вилки , чтобы отразить нового мастера с моими изменениями.

Там есть ошибки?

И после этого, что мне делать с ветками функций на моем локальном компьютере? Перебазировать их к моему местному мастеру, возможно? Удалить их (это плохо?)?

Если они не примут мои запросы, я все равно хотел бы объединить их с моим местным мастером. Это что-нибудь испортит?

Я пытаюсь выяснить последовательность действий, которая позволяет мне отправлять запросы на основе функций, а также использовать мои изменения в моем проекте независимо от их принятия и мою локальную копию сразу после того, как они приняли / отклонили их.

Много читать, но спасибо за любую помощь!

Редактировать: Нашел эту статью на следующий день. Не отвечает на сложность моего вопроса, но все же полезно: http://codeigniter.com/news/contribution_guide#When:13:36:15Z

1 Ответ

3 голосов
/ 23 сентября 2011

Подмодульная часть немного усложняет, но в остальном:

  • 9: тянуть?вы бы подтолкнули две ветки к своей вилке («изолированный клон»), а не потянули их.Это сохранит эти коммиты в вашем удаленном репо.
    И на самом деле, для запроса извлечения вы должны нажать одну ветку со всеми коммитами, которые вы хотите предложить.См. Следующий пункт.
  • 11: отправить запрос на извлечение: идея запроса на выдвижение состоит в том, чтобы предложить ускоренное слияние для включения в исходный проект.
    Так что пока вам нужноПеребазируйте коммиты, которые вы хотите включить в ваш запрос на извлечение поверх ветки (например, master), который исходный репо должен будет обновить с вашими коммитами.Для этого рекомендуется:
    • сначала извлечь из исходного репо (чтобы убедиться, что master является актуальным),
    • перебазировать ваши ветви функций поверх master (снова master является примером здесь) как одна новая ветвь (и проверьте, работают ли ваши две новые функции, изначально разработанные в их собственной ветке)
    • выдвиньте эту новую ветку на ваш ответвление
    • предложить коммиты этой новой ветки как запрос на получение master

Как прокомментировал от koffie , ребазвозможно, если вы являетесь единственным, кто работает с этой веткой функций (и тогда возможно push --force).

Если вы хотите внести свой вклад в проект, вам не следует напрямую изменять историю фиксацииветвь, в которую вы будете вносить вклад: если вы хотите сделать запрос на извлечение master исходного репо, вам не следует ничего толкать к master вашего форка (за исключением коммитов, полученных из вытягивания из исходного репо)
Вы должны всегда работать в посвященномд филиал.

...