#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. Правильно, правильно. Похоже, что мой промах заключается в предположении, что это автоматизированный процесс «вырезать и высушить».