Следующая ситуация возникает время от времени, когда я работаю с Git. Я начинаю с линейной истории, с двумя ответвлениями. Мастер в настоящее время указывает на C. Ветвь A — это ветвь, которую я прошу своих коллег объединить с мастером, а ветвь B имеет незавершенную работу, которую я еще не опубликовал.
C
\
A - B
Во время проверки кода мой коллега замечает опечатку в последнем коммите в ветке A. Вместо того, чтобы создавать новый коммит только для исправления опечатки, я исправляю ошибочный коммит, и мы объединяем его с мастером. Мастер теперь указывает на A', что является фиксацией, исправляющей опечатку.
C - A'
\
A - B
Следующим шагом является перебазирование незавершенной работы. Я хочу, чтобы конечный результат выглядел так:
C - A'
\
B
Однако по умолчанию Git предполагает, что коммиты A и A' совершенно не связаны, и вместо этого пытается сделать это:
C - A'
\
A - B
Что, наконец, подводит нас к моему вопросу:
Есть ли способ попросить git самостоятельно выяснить, что нам не нужно включать A в перебазирование, потому что A' уже есть? Или это одна из тех ситуаций, которая всегда требует вмешательства человека для удаления повторяющегося коммита?