Если мы когда-либо перемещали файл в другое место или переименовали его, вся его предыдущая история терялась в git log, если мы специально не используем git log --follow. Я думаю, что обычно ожидаемое поведение состоит в том, что мы хотели бы видеть и прошлую историю, а не "обрезать" после переименования или перемещения, поэтому есть причина, по которой git log не использует по умолчанию --follow флаг?
Почему журнал git не имеет значения по умолчанию для git log --follow?
Ответ 1
Предположительно, потому что git log обычно используется для отображения общей истории фиксации, а не истории одного файла или пути. Опция --follow применима только в том случае, если вы смотрите на один файл (и не работает, когда вы называете несколько файлов). Поскольку это не самый распространенный случай, на самом деле нет смысла добавлять его в качестве значения по умолчанию.
Если вы хотите сделать это по умолчанию для себя, вы всегда можете сделать псевдоним:
git config --global alias.lf 'log --follow'
Теперь вы можете сделать git lf <filename>, чтобы получить нужное поведение.
Примечание.. Если вы хотите предложить изменение, которое вы запрашиваете в списке рассылки, и посмотреть, что думают люди, вы можете сделать это здесь. Или, что еще лучше, вы можете отправить патч!
Ответ 2
Примечание: начиная с git 2.6 (Q3 2015), git журнал может следить за историей по умолчанию для файла!
См. commit 076c983 (08 июля 2015 г.) Дэвид Тернер (dturner-tw).
(слияние Junio C Hamano - gitster - в совершить 2dded96, 03 августа 2015)
log: добавить конфигурационную переменную < <23 >Люди, которые работают над проектами с преимущественно линейной историей с частыми переименованиями файлов, могут всегда использовать "
git log --follow" при проверке жизни содержимого, проживающего на одном пути.Попросите команду вести себя так, как будто "
--follow" была задана из командной строки, когда установлена переменная конфигурацииlog.follow, и в командной строке есть один (и только один) путь..
git config log.follow true