Подтвердить что ты не робот

Git log: фильтр по дате фиксации фиксации

У меня есть такая фиксация

commit 8a183536da1641afa6bd5a27ae391b387b7cd052
Author:     hidden
AuthorDate: Fri Sep 7 10:13:59 2012
Commit:     hidden
CommitDate: Fri Dec 7 17:29:24 2012

Я хочу отфильтровать журнал и показать фиксацию с помощью AuthorDate.

Я попробовал опции --since и --until, но на самом деле фильтр CommitDate.

Это означает, что я могу получить только фиксацию

git log --since='2012-12-01' --until='2012-12-10'

Если я хочу получить фильтр фиксации start_date '2012-09-01' и end_date '2012-09-10'

Любые советы?

4b9b3361

Ответ 1

git log --format=format:"%ai %aE %s"

а затем grep by AuthorName и/или дата!

Ответ 2

Боюсь, вам нужно сделать несколько сценариев:

git log --format="%ad %H" --date=iso | sort | ruby -ane 'date = $F[0] ; hash = $F[3] ; puts hash if ("2013-08-23".."2013-09-26").cover?(date)'

дал мне:

3eddb854eaea971e9a60147153f0f3c9be4f1a5a
dfeefd4715c4fddef0957c5aff238c525bb1def6
db654badb97f3784286171d4645e9face6a42865
62cdba07e6ae0cd28752491a83f584d3e18a5619
7643a0458a54200f8944583d66c089d63c1bf688
23b720852a36e959d0f45f9d11f05d4aa7ee0cb9
f729ec9c5bf37ee0284a8db47cbc79a0b53145bb
bc2d647ae86fbff1246ba163a5a99d25ed2f3523
a0752b3cbae39698449be953153ddaafe35c054c
8e88fffc75cbdda333c86cb4f5eb9b5b30263c27

К сожалению, git log 3eddb854eaea971e9a60147153f0f3c9be4f1a5a..8e88fffc75cbdda333c86cb4f5eb9b5b30263c27 не гарантированно работает, потому что эти коммиты могут находиться в разных ветвях.

Объясните, что я сделал:

  • --format="%ad %H" - формат журнала в виде author_date commit_hash строк
  • --date=iso - даты в формате YY-mm-dd HH:MM:SS
  • sort - команда Unix, которая сортирует строки по алфавиту; он подходит для сортировки дат в формате ISO
  • ruby -ane - выполнить ruby ​​ script. -n означает выполнение для каждой строки, -разбить эти строки и поместить поля в массив $F, -e выполнить script для выполнения
  • ("2011-02-23".."2011-02-26").cover?(date) - создать диапазон из двух строк и проверить, соответствует ли дата его включению (в значении алфавитного порядка мы не разбирали эти даты)

Я понятия не имею, что делать дальше (чтобы дать вам более приятный журнал), но рад переместить вас к этой точке.

Ответ 3

Я иногда хочу знать, что коммиты, созданные мной в определенный день. Для этого я использую git log --all --author=jpo --format="%ai %s" |grep -E ^2015-09-01. К сожалению, этот подход не будет работать для фильтрации по диапазону дат в целом, но для диапазона, используемого в вопросе, его можно было бы легко сделать: git log --all --author=jpo --format="%ai %s" |grep -E ^2012-12-(0.|10) Если вам нужна дополнительная информация о коммитах помимо даты автора и сообщения о фиксации, просто добавьте больше параметров в формат string (проверьте раздел PRETTY FORMATS на странице git help log).