Как проверить дату и время последнего "git pull", который был выполнен?
Как проверить дату и время последней git pull
что казнили? Мне часто нужно знать, когда код изменен на сервере, когда что-то идет не так.
7 ответов:
The
git show
команда показывает дату последней фиксации. Это не дата, когда фиксация была перенесена в локальный репозиторий, но Git не хранит такую информацию о вытягивании.вы можете найти время последнего вытягивания, используя ctime (время создания) файлов на сервере. Например:
ls -lct
показывает ctime каждого файла, отсортированного с самым последним первым.
stat -c %Y .git/FETCH_HEAD
даст вам метку времени unix последней модификации этого файла. Git записывает файл FETCH_HEAD каждый раз, когда вы тянете или извлекаете, даже если ничего не нужно было тянуть.
по догадке, я попробовал " stat-c %y .git/FETCH_HEAD", и получил удобочитаемую распечатку времени:
> stat -c %y .git/FETCH_HEAD 2015-02-24 17:42:08.072094410 -0500
кроме того, вы можете добавить
when = !stat -c %y .git/FETCH_HEAD
до в свой ~/.файл gitconfig (безопаснее всего сделать это автоматически, запустив следующую командную строку в любом репозитории git)git config --global alias.when '!stat -c %y .git/FETCH_HEAD'
и тогда вы сможете найти эту информацию с вашей новой "команды", в любое время:
> git when 2015-02-23 15:07:53.086254218 -0500
[затем мне пришло в голову сделать "man stat", и я нашел что есть куча других параметров%, доступных для программы "stat". МММ.]
в "голый" репозиторий (и "голый" репозиторий не имеет смысла
git pull
), git записывает все изменения в советы ветвей и текущую идею ветви в "reflogs", в.git/logs
. Вы можете просмотреть их с помощьюgit log -g
.однако, хотя файлы журнала имеют метки времени, это не кажется, что
git log -g
напечатает его. Однако, если вы посмотрите на.git/logs/HEAD
например, вы увидите, что формат довольно прост для разбора - он состоит из того, что ref (или HEAD) изменился, изменен на, кто его изменил, когда и сообщение об активности.
$ # for the latest pull even if there's nothing new $ stat -c %y .git/FETCH_HEAD 2017-12-15 11:24:25.000000000 +0100 $ $ # for records of updated references $ git reflog --date=iso db2bba84 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2017-12-14 11:28:39 +0100}: pull: Fast-forward 37fe73ad HEAD@{2017-12-03 17:09:32 +0100}: pull: Fast-forward c4107fcd HEAD@{2017-11-27 18:53:40 +0100}: clone: from https://github.com/macports/macports-base $ $ # for a more detailed view of the latter $ git log -g commit db2bba84d5e8cd82ec94a19129deb91ef62287bb (HEAD -> master, origin/master, origin/HEAD) Reflog: HEAD@{0} (me <me@machine.local>) Reflog message: pull: Fast-forward Author: Ryan Schmidt <ryandesign@macports.org> Date: Wed Dec 13 10:23:47 2017 -0600 portutil.tcl: Fix renames that supply the -force option Treat $options as a list not as a string. See: https://trac.macports.org/ticket/55492 [snip]
Как предложил пользователь:https://stackoverflow.com/users/83646/smoove, Вы можете найти, когда git pull последний раз вызывался в репо, проверив временную метку модификации: .git / FETCH_HEAD as: git пишет свое .файл git/FETCH_HEAD каждый раз, когда вы тянете или извлекаете, даже если вам нечего было тянуть.
пример: {master} vinegupt@bhling69 (/imsgit_local/work/vinegupt/ims_18.5a/ims_common)$ stat-c %y .git / FETCH_HEAD
2018-02-12 02: 01:50.487160386 +0530