Как получить последнюю дату фиксации из репозитория git?
Мне нужна последняя дата фиксации в git. Это означает последнюю дату обновления в моей программе.
Я использовал команду: $ git log -1
но эта команда даст мне дату из локального репозитория. Скорее мне нужна дата из удаленного репозитория.
Я попробовал несколько команд, как следует.
git log -n 1 origin/Sprint-6.
git rev-parse --verify HEAD
Ответы
Ответ 1
Следующая команда будет полезна:
git log -1 --format=%cd
Это будет печатать последнюю дату изменения для одного файла. -1 показывает одну запись в журнале (самая последняя), а --format=%cd
- дата фиксации.
Подробное описание параметров см. В документации для git-log.
Ответ 2
Получить дату последней фиксации:
Вам нужна "последняя дата фиксации в репозитории для данного пользователя git и проекта git для данной ветки.
Дата, за которой вы следите, является последней датой, отображаемой при посещении вашего репо и переходе к commits → master
например:
https://github.com/sentientmachine/TeslaAverageGainByMonthWeekDay/commits/master
В верхней части страницы отображается самая последняя дата принятия.
Получить дату последнего локального коммита в git используя терминал
Используйте git help log
для получения дополнительной информации о кодах формата для передачи в --format
чтобы сообщить git log, какие данные нужно извлечь.
Дата последнего коммита в git:
git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 07:40:52
Но, как вы указали, вы должны выполнить эту команду на компьютере, который выполнил последний коммит. Если дата последней фиксации была выполнена на другом компьютере, приведенная выше команда сообщает только о локальной последней фиксации... Итак:
Или в репозитории: получить дату последнего коммита git
То же, что и выше, но сначала сделайте git pull.
git pull;
git log -1 --format="%at" | xargs -I{} date -d @{} +%Y/%m/%d_%H:%M:%S
#prints 2018/07/18 09:15:10
Или используйте git JSON API:
git тянет по расписанию не круто, потому что он медленный и вы загружаете сервер ненужным сетевым трафиком. Просто запросите git rest api:
#assuming you're using github and your project URL is visible to public:
# https://github.com/yourusername/your_repo_name
#then do:
curl https://api.github.com/repos/yourusername/your_repo_name/commits/master
Это взрывает вас перед лицом экрана, полного json, поэтому отправьте его вашему любимому парсеру json и получите поле с именем date
:
curl https://api.github.com/repos/<your_name>/<your_repo>/commits/master 2>&1 | \
grep '"date"' | tail -n 1
#prints "date": "2019-06-05T14:38:19Z"