Работая в ожидании пиара

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

*master
user_story_1

user_story_1 имеет открытый запрос на извлечение.

Сейчас я пытаюсь создать новую ветку user_story_2 где я могу продолжить работу, которую я оставил в user_story_1, Как я могу сделать это в Git, не вступая в конфликт и не влияя на ожидаемое слияние?

2 ответа

Решение

Я предполагаю, что вы хотите начать новый user_story_2 ветвь на вершине работы, которую вы сделали в user_story_1, Вот рабочий процесс, который я использую в этом сценарии:

  1. Открытый запрос на извлечение для user_story_1:

      * (user_story_1)
      *
     /
    * (master)
    *
    *
    
  2. Создать новую ветку user_story_2 основанный на user_story_1:

    $ git checkout -b user_story_2 user_story_1
      * (user_story_1, user_story_2)
      *
     /
    * (master)
    *
    *
    
  3. Работа на новой ветке:

      * (user_story_2)
      *      
      * (user_story_1)
      *
     /
    * (master)
    *
    *
    
  4. Запрос на объединение объединяется:

      * (user_story_2)
      *      
    * | (master)
    |\|
    | * (user_story_1)
    | *
    |/
    *
    *
    *
    
  5. Удалить старую ветку:

      * (user_story_2)
      *      
    * | (master)
    |\|
    | *
    | *
    |/
    *
    *
    *
    
  6. Перебазировать новую ветку на master:

      * (user_story_2)
      *      
     /
    * (master)
    |\
    | *
    | *
    |/
    *
    *
    *
    

Мой предпочтительный рабочий процесс для этого:

  1. На ветке мастер, git checkout -b user_story_1,
  2. Внести изменения в user_story_1,
  3. Открытый PR для user_story_1,
  4. На ветке user_story_1, git checkout -b user_story_2,
  5. Внести изменения в user_story_2,
  6. однажды user_story_1 объединяется с мастером, переключитесь на user_story_2 и делать git rebase -i master,
  7. Это должно показать вам список коммитов на user_story_2 что вы хотите включить в ребаз. Удалить несколько верхних коммитов, которые пришли user_story_1,
  8. Перебазирование должно завершиться чисто, если мастер не был обновлен с другими изменениями. Теперь у вас есть user_story_2 перебазировал на мастера и только имея свои коммиты.

Создайте новую ветку от мастера для каждой из ваших историй / функций.

Перед объединением каждой ветви обратно, либо объедините мастер в эту ветку, либо переназначьте свою ветку на мастер. Последний имеет мои предпочтения, но в итоге результат тот же.

У вас будут конфликты, и тут нет пути. Однако вы хотите разрешить конфликты в своей отрасли; не в мастер. Таким образом, вы можете проверить свою ветвь после разрешения конфликтов, прежде чем объединить ее с master.

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