Відповіді:
Існує кілька варіантів, щоб красиво роздрукувати дату. Напевно, найпростіше - просто використовувати один із заздалегідь запечених --pretty
форматів, як-от git log --pretty=fuller
- це покаже обидві дати. Якщо ви хочете побачити лише одну дату, але зробити це датою фіксації, ви можете використовувати git log --format=<some stuff>
. Усі допустимі коди для визначення формату задокументовані в git help log
. Фіксації дата є одним з %cd
, %cD
, %cr
, %ct
або %ci
, в залежності від того, якого формату ви віддаєте перевагу його.
Якщо ви хочете робити це часто, поставте його в псевдонімі або напишіть допоміжний сценарій, щоб заощадити на наборі тексту.
Ви можете використовувати --pretty=format
та використовувати %cr
для відносної дати фіксації.
Наприклад:
$ git log --graph --pretty=format:'%C(auto)%h%d (%cr) %cn <%ce> %s'
Ви можете визначити псевдонім у git, щоб зробити це простішим у використанні. У мене є таке .gitconfig
:
[alias]
# see `git help log` for detailed help.
# %h: abbreviated commit hash
# %d: ref names, like the --decorate option of git-log(1)
# %cn: commiter name
# %ce: committer email
# %cr: committer date, relative
# %ci: committer date, ISO 8601-like format
# %an: author name
# %ae: author email
# %ar: author date, relative
# %ai: author date, ISO 8601-like format
# %s: subject
# my awesome git log replacement
lol = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s\"
# same as above, but ISO date
lold = log --graph --pretty=format:\"%C(auto)%h%d%Creset %C(cyan)(%ci)%Creset %C(green)%cn <%ce>%Creset %s\"
# using build-in standards
lol2 = log --oneline --graph --decorate
# shows branches and their last commits
lol3 = log --all --graph --decorate --oneline --simplify-by-decoration
У Linux або подібних системах '
замість подвійних лапок можна використовувати одинарні лапки "
:
[alias]
lol = log --graph --pretty=format:'%C(auto)%h%d%Creset %C(cyan)(%cr)%Creset %C(green)%cn <%ce>%Creset %s'
З цим просто запустіть git lol
або інші варіанти, щоб побачити гарний вихід.
Ось результат git lol --simplify-by-decoration
:
lol
легше набирати log
, а також звучить краще.
git log
якщо вам це коли-небудь знадобиться.Ось вихід git lold
із датами у форматі ISO. Корисно побачити точну дату / час вчинення зобов’язань, бонус за можливість легко бачити часовий пояс учасника.
Редагувати 2020-06 : Додано скріншоти. Оновлено для використання %C(auto)
(автоматичне / за замовчуванням забарвлення) для %h
(ввести хеш) та %d
(посилання імен). Додано %cn
(ім’я виконавця) на додаток до електронної пошти.
git log --graph --pretty=format:\"%C(yellow)%h%Creset%C(cyan)%C(bold)%d%Creset %C(cyan)(%cr)%Creset %C(green)%ce%Creset %s\"
bash: синтаксична помилка поблизу несподіваного маркера `('
Я віддаю перевагу такому формату, не містить імені автора та включає в себе фактичну дату вчинення.
git log --graph --pretty=format:"%C(yellow)%h%x09%Creset%C(cyan)%C(bold)%ad%Creset %C(green)%Creset %s" --date=short
git show --pretty=fuller HEAD
для прикладу). Для локального розвитку вони зазвичай однакові, але для патчів, доданих за допомогою електронної пошти чи інших механізмів, вони можуть відрізнятися, де AuthorDate - це дата, коли патч був сформований, і буття ActivDate, коли він був фактично застосований до сховища.