Я использую следующую команду из здесь :
git for-each-ref --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p) %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes
Есть ли способ сортировки authordate
по определенной дате?
Например,, показывать только результаты, которым X дней или месяцев, или, возможно, после определенной даты?Я думал об использовании grep
, но я надеялся, что был подход, который фактически анализирует данную дату, чтобы выполнить вычисления, а не просто сопоставлять строки.
Я придумал следующее, используя sed
:
git for-each-ref --format='%(color:cyan)%(authordate:format:%Y-%m-%d %I:%M %p) %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes | sed -n '/{start_year}-*/,/{end_year}-{end_month}-*/p'
но было бы гораздо лучше просто указать одну конкретную дату и получить все результаты до или после указанной даты.
РЕДАКТИРОВАТЬ: метод выше с использованием sed
не работает, еслиданная дата окончания не существует, так как sed является только потоковым редактором.Например, если полученная строка sed равна '/2017-*/,/2018-10-*/p'
, но нет записей, соответствующих 2018-10-*
(нет веток с коммитами в октябре 2018 года), то все результаты будут получены с 2017 года.То есть это не настоящий расчет диапазона дат;это простое совпадение строк, которое останавливается, когда он находит первую запись, соответствующую правой стороне.