Как ведет себя git во время конфликтов перебазирования при выборе одного, но нуждающегося в обоих?

#git #git-rebase #git-merge-conflict

#git #git-перебазирование #git-merge-conflict

Вопрос:

Я пытаюсь понять перебазирование git, но у меня возникают проблемы. Я прочитал несколько сообщений на форуме и документацию, чтобы посмотреть, смогу ли я определить это, но поведение кажется мне странным, поэтому я не могу обмозговать это.

Допустим, у меня есть файл с именем test.txt .

У меня есть ветка, Branch A :

text.txt в Branch A :

 Hello, World!

Good... Thanks for asking!
  

и в Branch B text.txt файле выглядит так:

 
-> How are you, robot?

  

Мне нужны оба изменения (давайте представим, что это не простое копирование и вставка исправления… Мне нужно перебазировать).

Итак…

git checkout Branch B

git rebase Branch A

И затем происходит конфликт слияния. Он спрашивает меня, хочу ли я сохранить одно или другое…

 <<<<<<<<<<<<<<<<< 1234123hpdfaskdjf123234
Hello, World!

Good... Thanks for asking!
==========

-> How are you, robot?

>>>>>>>>>>>>>>>> some commit message
  

1) Что мне делать, если мне нужны оба?
2) Использую ли я только один или другой, или я использую комбинацию их обоих?
3) Если я использую один, будет ли другой блок доступен позже?

Ответ №1:

1) Если вам нужны оба, просто удалите конфликтующие метки <<<<< , ===== , >>>>> а остальное оставьте в покое.

2) Это зависит от того, какие строки вы хотите сохранить, а какие удалить. Это не или-или.

3) Другой блок недоступен из коммита, созданного после разрешения конфликтов. Но это все еще существует во внешней фиксации.

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

Комментарии:

1. Правильно, правильно. Похоже, что мой промах заключается в предположении, что это автоматизированный процесс «вырезать и высушить».