Единственный способ потерять историю в Git - это удалить коммиты. Это потому, что коммиты являются историей. Нет истории файлов; есть только коммиты.
Когда вы используете git log --follow pom.xml
, вы говорите Git синтезировать историю файлов, блуждая по истории фиксации и отмечая, когда происходит прикосновение к файлу с именем pom.xml
. Опция --follow
сообщает Git, что в дополнение к проверке, если pom.xml
является измененным в этом коммите, он также должен проверить, является ли он переименованным в этом коммите. Если это так, Git проверяет ранее , фиксирует старое имя (включая полный путь к каталогу) вместо нового имени, поэтому Git больше не ищет new/pom.xml
, а теперь ищет old/pom.xml
или что-либо еще и создание истории файлов для этого файла.
Если вы используете IDE, IDE должна делать то же самое, что и Git - синтезировать историю файлов, выбирая коммиты, которые изменяют этот файл, и проверять операции переименования в процессе, если вы этого хотите.