Як змусити журнал Git відображати всі сьогоднішні коміти?


77

Я хочу мати можливість побачити всі зобов’язання, які я зробив сьогодні, використовуючи git log. Я придумав git log --after="yesterday"
Однак це здається мені трохи незручним, чи існує простіша команда для досягнення того ж ефекту?

Відповіді:


91

Редагувати: Оскільки це прийнята відповідь, я не можу її видалити, тому розміщую тут @ відповідь Саймона:

git log --since="6am"

І звичайно, ви можете налаштувати час на те, що вам достатньо "ранку" :)


8
Здається, це не працює на git 1.5.6.5, FWIW. Я знаю, стара версія та інше, але я думаю, це може комусь допомогти. git log --after="yesterday"здається, найближче до правильного, але в підсумку включає те, що сталося вчора разом із тим, що сталося після вчора.

3
Для мене: git log --since="yesterday"працює добре. Виглядає добре з --pretty="oneline"занадто ... (git версія 1.7.10)
Нік

--since та --after - синоніми, тому відповідь передбачає те саме, що й у питанні. Це дасть останні 24 години комітів (звідси проблема @ agentbanks217 з переглядом комітів вчора). Я даю іншу відповідь нижче.
cogg

Крім того, такі випадки, як "06:00"робота, для тих, хто не любить AM / PM
Hubro

Я думав, це буде працювати до 5:59 наступного дня. Однак у ньому вказані лише коміти в той же день (тобто він перестає працювати опівночі)
binaryfunt

67

Можливо, найкраще використовувати

git log --since="6am"

Ви можете налаштувати час на свою зручність;)


Також додайте --всі, щоб переглянути журнал усіх філій за цей період
schoetbi

22

Ви можете створити псевдонім, щоб скоротити цю команду

git config --global alias.today 'log --since=7am'

а потім виконайте:

git today

21

Щоб отримувати комісії від усього сьогодні ...

git log --since=midnight

5

Вже є кілька корисних правильних відповідей (наприклад git log --since="6am"), але дивно, що спеціальні дати Git відсутні в документації (принаймні гугл "вчора", "обід" сайт: git-scm.com результатів не дає).

Є способи дізнатись, що доступно, наприклад , особливо корисними є відповіді на Специфікацію синтаксису git дат . В одному Райан О'Хара вказує на це

it seems to accept all formats that it can output, as described in the documentation for the --date option:

--date=(relative|local|default|iso|rfc|short|raw)

Набуває чинності лише для дат, показаних у зручному для читання форматі, наприклад, під час використання --pretty. log.dateЗмінна config встановлює значення за замовчуванням для --dateопції команди log .

--date=relative показує дати відносно поточного часу, наприклад "2 години тому".

--date=local показує мітки часу в місцевому часовому поясі користувача.

--date=iso(або --date=iso8601) показує мітки часу у форматі ISO 8601.

--date=rfc(або --date=rfc2822) показує мітки часу у форматі RFC 2822, які часто зустрічаються в повідомленнях електронної пошти.

--date=shortпоказує у YYYY-MM-DDформаті лише дату, але не час .

--date=rawпоказує дату у внутрішньому форматі вихідного формату git %s %z.

--date=default показує мітки часу в оригінальному часовому поясі (або комітету, або авторському).

Моя улюблена відповідь є від me_and , який направляє нас до мерзотник класу date.c . Проскануйте це, і ви знайдете цей код (на момент написання він знаходиться в рядку 925):

Я точно використовую git log --before=tea, хоча, дивлячись на date_teaфункцію, я не думаю, що вони читали Руперта Брука :


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.