Як отримати відмінності для певного користувача між двома датами з git?

Або як використовувати команду git whatchanged команду list commit для вказаного користувача? Чи існує який-небудь сценарій? (вбудована команда git)

26

3 Відповіді

Я вважаю, що немає такого способу отримати різницю лише знаних дат.

На сьогоднішній день ви можете зробити наступне:

git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H"

А потім git diff між першим і останнім переглядом. Якщо список перегляду занадто довгий, скористайтеся вищезазначеним git log ... за допомогою | голова -1 і | хвіст -1 , щоб отримати перші та останні ревізії.

Зверніть увагу, що вказаний вище журнал git поверне версії точно між даними, тобто версіями для OCT 5, OCT 6, ..., OCT 10.

35
додано
Ви можете сортувати робити це безпосередньо з diff, але не так надійно, використовуючи позначення @ {date} , наприклад, git diff @ {date1} @ { date2} . Проблема полягає в тому, що конструкція @ {date} не розглядає історію зобов'язань, щоб перекласти дату в commit-id, але замість цього використовує revlog . Результат полягає в тому, що якщо ви потягнете дуже часто , у вашому журналі буде досить тонка інформація, що вищесказане може зробити те, що ви хочете, але якщо ви не , то результати будуть неточними ...
додано Автор snogglethorpe, джерело
Я повинен був додати знак рівності для його роботи: git log --since = "FEB 1 2014" --until = "FEB 30 2014"
додано Автор bonyiii, джерело

Це можливо, і з критеріями користувача/підписувача:

git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"

Це буде відповідати будь-якому

  • between those date
  • by authors matching the names John or Mary
  • where the commit message includes (e.g. a Jira ticket number in the form of) MBT or MBF plus a number-code that can include a - char.
4
додано
Це відображає журнал, але не відрізняється.
додано Автор pingu, джерело
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch
0
додано