Текущий рабочий процесс для наших разработчиков:
Проблема :
Я работаю над ошибкой 1, название ветки develop_bug1 . Я фиксирую свои изменения в файле file1.jsp и создаю PR
Теперь я начинаю работать над ошибкой 2, название ветки develop_bug2. Я обнаружил, что изменения должны быть внесены в тот же файл file1.jsp, что и ошибка 1. Когда я извлекаю develop_bug2, мои изменения из develop_bug1 отсутствуют.
Что, если я закончу свои изменения для ошибки 2, зафиксирую и создам PR? Будет ли это перезаписывать изменения для ошибки 1?
Не уверен, где начать
Это называется слиянием, а не перезаписью по какой-то причине. :-D
Если ни один из 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. Конфликтов не будет.
Will it overwrite changes for bug 1?
Нет.