Git немного небрежно относится к правильному различению сантехники и фарфора. Совет использовать вертикальные команды в сценариях хорош, но иногда команда, например git log
, не имеет подходящего варианта сантехники, но имеет параметры, которые делают ее "вертикальной", если я могу составить слово.
В этом случае соответствующая команда (отредактирована 21 марта 2019 г., согласно комментарий Джоша):
git -c log.showSignature=false log --pretty=format:%ad --no-walk <hash>
(или то же самое с %cd
в качестве директивы формата для даты фиксации; добавьте различные параметры форматирования даты, к самому git log
или, например, как %aD
, чтобы изменить формат даты). Ничто точно не обещает, что git log
может не добавлять новые функции, такие как настройка log.decorate
, которые могут нарушить это, и Git должен взять себя в руки и добавить --porcelain
опции к командам, которые ведут себя как git status
. (Обратите внимание, что git status
теперь имеет --porcelain
и --porcelain=v2
, оба из которых преобразуют его в сантехнику. Не спрашивайте меня, почему это не пишется --plumbing
...)
person
torek
schedule
08.10.2018
git log --pretty=format:%aD | head -1
илиgit show --format="format:%aD" --no-patch HEAD
. - person pepak   schedule 08.10.2018Mon, 8 Oct 2018
для даты в формате%aD
, но я не знаю, могу ли я разумно ожидать, что какая-то будущая версия не будет даватьMon, 08 Oct 2018
для того же коммита. - person Pont   schedule 08.10.2018%aD
указан как дата автора, стиль RFC2822, формат должен остаться прежним. Чтобы получить другой фиксированный формат, вы можете использовать%aI
или добавить специальный--date=raw
. Ни один из них не должен меняться с большей вероятностью, чем сантехническая версия. - person pepak   schedule 09.10.2018%aI
изменится, но поскольку в документации git прямо сказано, что фарфоровые команды могут быть изменены и не должны использоваться в скриптах (за исключением, конечно, случаев, когда они предлагают вариант--porcelain
), я бы предпочел не полагаться на предугадывание их будущего развития. - person Pont   schedule 09.10.2018