У меня проблема, которую только что придумал мой коллега, и мне интересно, как лучше всего работать с git. Эта проблема.
Допустим, у нас есть две ветви A и B. Теперь мы изменяем какой-то файл ( foo.c
) как в A, так и в B, поэтому мы получаем конфликт слияния, когда мы объединяем B в A. Теперь скажем, какой-то разработчик напортачил и оставил ветку A в нерабочем состоянии, и ошибка также находится в foo.c, но в строке, которая не была объединена.
Я вижу некоторые возможности справиться с этой ситуацией:
Спрятать ожидающее слияние, исправить проблему на A, зафиксировать и затем снова применить слияние. Однако на данный момент я не уверен, как обрабатывать правильную стратегию слияния для изменений, которые оба вносили в foo.c. Сломанная часть может повлиять на некоторые вещи, которые я сделал, поэтому я не вижу четкого способа разрешения конфликтов.
Отменить слияние, исправить проблему на A, а затем повторить слияние целиком.Однако я, возможно, уже разрешил другие конфликты, поэтому это может потерять много работы.
Возьмите --theirs / - нашу версию файла, выполните слияние, исправьте изменения, выделите потерянные изменения. Однако потом я внесу некоторые изменения дважды.
Другое решение, о котором я не могу придумать.
Все эти решения кажутся мне несколько неудовлетворительными. Исходя из моего обычного опыта, я бы, вероятно, выбрал 1, но я абсолютно не уверен в этом.
Как бы вы справились с такой ситуацией?