Назад | Перейти на главную страницу

git diff между двумя ветками, когда путь изменился

Мне нужно понимать изменения в файле между двумя выпусками, представленными моим текущим мастером и веткой new_branch. Обычно я бы запустил следующее, если путь / имя совпадают в обеих ветвях.

git diff new_branch - путь / файл

Что мне делать, если путь / файл в двух ветвях различаются?

Я могу отступить и создать еще один клонированный репозиторий и проверить new_branch. Затем выполните unix sdiff. Мне просто было интересно, предвидели ли авторы git diff этот сценарий и встроили ли что-нибудь для его обработки.

- Спасибо, - Майк младший.

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

Тем не менее, вы можете проинструктировать git-diff использовать эту эвристику для обнаружения переименований, передав ему -M флаг. С этим вы можете попробовать

git diff -M new_branch -- new-path/file old-path/file

и посмотрите, работает ли это в вашем конкретном случае. Дальше, git diff -M --stat new_branch даст вам обзор изменений, а также покажет, что переименовывает эвристика Git.