15 Sep 2013 18:15:03

Git Show Full File Changed History, Respecting Branch Merges & File Renames

Иногда полезно узнать полную историю по изменениям конкретного файла, но случается так что некоторых изменений может не хватать, что приводит к замешательству и трате времени, здесь указано несколько моментов которые стоит учитывать чтобы получить объективную картину


Работать будем с консолью

Вот команды с помощью которых можно получить историю изменений
$ git log -p dir/file.txt
$ git whatchanged -p dir/file.txt
флаг -p нужен чтобы показать diff рядом с коммитом

1ая и 2ая команды по умолчанию не показывают коммиты мержей, по сути они не очень-то и полезны или не так часто - но иногда такая необходимость возникает. Поскольку мерж совмещает все коммиты сделанные в мержущихся ветках - достаточно знать изменений самих комитов, если все же нужно посмотреть дифф самого мержа можно воспользоваться флагом -m

так

$ git log -p -m dir/file.txt
или так
$ git whatchanged -p -m dir/file.txt

Команда git whatchanged уже показывает полную историю, а вот git log нет, это связано с тем что если просматриваемый файл менялся бинарно - т.е перемещался, переименовывался и т.д. история на этом моменте пропадет, чтобы заглянуть за точку бинарных изменений нужно добавить флаг --follow который позволит просмотреть историю целиком

$ git log -p -m --follow dir/file.txt

Comments:

add comment