Git с несколькими изменениями

Текущий рабочий процесс для наших разработчиков:

  1. Создайте новую ветку из разработки для каждой ошибки
  2. Внесите свои изменения и зафиксируйте их
  3. Создать пул реквест

Проблема :

  1. Я работаю над ошибкой 1, название ветки develop_bug1 . Я фиксирую свои изменения в файле file1.jsp и создаю PR

  2. Теперь я начинаю работать над ошибкой 2, название ветки develop_bug2. Я обнаружил, что изменения должны быть внесены в тот же файл file1.jsp, что и ошибка 1. Когда я извлекаю develop_bug2, мои изменения из develop_bug1 отсутствуют.

  3. Что, если я закончу свои изменения для ошибки 2, зафиксирую и создам PR? Будет ли это перезаписывать изменения для ошибки 1?

Не уверен, где начать

Will it overwrite changes for bug 1? Нет.
tkausl 10.02.2023 20:37

Это называется слиянием, а не перезаписью по какой-то причине. :-D

eftshift0 11.02.2023 00:58
0
2
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если ни один из PR не будет объединен, то конфликтов в обеих ветвях нет.

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

PS: всегда загружайте последний код в локальную ветку, прежде чем поднимать PR.

Ответ принят как подходящий

Изменения в двух ветках не будут присутствовать в другой ветке или ветке разработки, пока две ветки ошибок не будут объединены. Это совершенно отдельные «копии» кода.

Поскольку в обоих случаях вносятся изменения в один и тот же файл (file1.jsp), возникают так называемые конфликты слияния, которыми необходимо управлять.

Давайте предположим, что develop_bug1 нужно сначала объединить обратно в development (либо потому, что он более срочный, либо потому, что в нем меньше изменений).

Шаг 1: Объедините файл development_bug1 с файлом develop. Конфликтов не будет.

Шаг 2: Объедините файл development с файлом develop_bug2. Это иногда называют ребазингом. Будут конфликты слияния, которые вам нужно будет разрешить. Ваша IDE поможет вам справиться с конфликтами, выбрав, какую версию каждого изменения принять.

Шаг 3: Объедините обновленный файл development_bug2 (который теперь включает изменения, происходящие из файла develop_bug1) в файл develop. Конфликтов не будет.

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