Мастер слился с веткой и разрешил конфликты, но все еще возникает конфликт слияния на битбакет PR?

Я пытаюсь объединить свою ветку с мастером, но у меня продолжают возникать конфликты слияния в битбакете. Обычно я просто извлекаю любые обновления из мастера и объединяю их в свою ветку, разрешаю конфликты и загружаю обратно в битбакет, но по какой-то причине в этот раз это не сработало. Я пытался объединить мастер в свою ветку и разрешить конфликт несколько раз, но безуспешно. Я даже пытался скопировать и вставить файл из мастера, а затем добавить обратно свои изменения, но Bitbucket продолжает показывать конфликты ни с чем, либо со строками, которые я не трогал.

в одном файле у меня конфликт на одном из моих импортов

<<<<<<<
=======
import someFile;
>>>>>>>

в другом файле у меня конфликт с моей зависимостью

<<<<<<<
=======
<dependency>
    someDependency
</dependency>

и в третьем файле у меня есть конфликт с некоторыми строками кода, которые я не трогал, но они такие же, как и в мастере

<<<<<<<                               
                         </connection>
    </channel>
=======                                   
                         </connection>
    </channel>
>>>>>>>

Первые два выглядят как конфликт слияния ни с чем? Я чувствую, что единственный способ решить эту проблему - начать с чистой ветки, есть ли способ решить эту проблему без необходимости этого делать?

обновление: Git по-прежнему вызывал у меня проблемы даже после двойной проверки моего кода, поэтому, если у кого-то возникла эта проблема, вот что я сделал для ее решения. Я сделал git merge master и вместо разрешения конфликтов просто принял входящие изменения от мастера, затем зафиксировал и отправил (без моего кода). Я снова скопировал свои изменения, зафиксировал, затем снова нажал, и теперь все конфликты разрешены (хотя код вообще не изменился). Это похоже на начало заново, за исключением того, что мне не нужно было повторно добавлять все файлы, у которых не было конфликтов слияния.


person mest    schedule 02.01.2019    source источник
comment
Каждому время от времени нужна хорошая проверка работоспособности... Вы уверены, что перешли на удаленку? Вы уверены, что исходная и целевая ветки запроса на вытягивание отражают операцию, которую вы пытаетесь выполнить локально?   -  person Caleb Adams    schedule 02.01.2019
comment
Проверьте символы конца строки в третьем файле и конфигурацию core.autocrlf на всех рабочих станциях.   -  person Tamir Daniely    schedule 02.01.2019


Ответы (1)


Это рутинная работа для каждого разработчика. По сути, git работает следующим образом: если конфликтующие файлы имеют разные заголовки, он показывает конфликты слияния, что означает, что если в одни и те же файлы внесены изменения, которые не могут быть автоматически объединены, он показывает конфликт. Вы можете сделать следующее: -

1) Объедините мастер в свою ветку, используя

git merge master

Теперь вам нужно открыть конфликтующий файл и отредактировать его вручную.

2) Используйте такой инструмент, как исходное дерево, черепаховый git и т. д. Они дают вам хороший обзор, чтобы исправить ваши конфликты и содержат встроенный редактор. Они также дают вам возможность вносить изменения из инструмента.

3) Создайте новую ветку и повторите свои изменения. Мне никогда не приходилось этого делать, потому что обычно все решается 1-м или 2-м подходом.

PS: Возможно, ваш редактор кода добавляет форматирование, поскольку вы упомянули, что не трогали файлы. Поэтому попробуйте один раз другой редактор.

Надеюсь, поможет !!

person Jitesh Shivnani    schedule 02.01.2019
comment
Спасибо за информацию! Но я упомянул в своем вопросе, что пытался объединить master и разрешить конфликты, что не сработало, и хотел найти решение, которое не требует запуска с новой ветки :) - person mest; 03.01.2019