Я пытаюсь понять, почему повторяющиеся конфликты возникают во время перебазирования. Я начинаю с концепции, что, если конфликт разрешен и, следовательно, приводит к созданию новых коммитов, с этого момента не должно быть больше конфликтов.
В разделе Хранение объектов документации git объясняется, что объект фиксации содержит заголовок, предыдущее содержимое файла и новое содержимое файла, или перед и после состояний.
Если я git rebase
и разрешу конфликт во время перебазирования, содержит ли новый коммит состояние "до", отличное от исходного коммита?
Я предполагаю, что если новый коммит содержит точно такие же до и после состояние содержимого коммита и всех его будущих дубликатов (созданных в результате дальнейшей перебазировки) будет продолжать вызывать конфликты. Само собой разумеется, что git rerere
будет использовать этот контент в качестве отпечатка пальца, чтобы сопоставить будущие конфликты с прошлыми конфликтами и иметь возможность их автоматического разрешения.
Если, однако, новые коммиты не содержат обновленного содержимого в состоянии до , возникает два вопроса:
- Почему будущее перебазирование вызывает повторяющиеся конфликты, а
- Откуда git знает, что нужно поместить в new до состояния ?