2017-01-04 3 views
2

Предположим, что я хочу клонировать большое git-репо из URL-адреса, тогда и только тогда, когда было совершено коммитирование в течение последнего n (скажем, 24) часа. Я не хочу клонировать его, потому что это довольно много времени для такого большого репо, и я не хочу клонировать его один раз, а затем проверять, например. git статус периодически.Запрос последней фиксации на git-репо без клонирования

Я хочу быть в состоянии сказать, когда последний фиксат был сделан до клонирования. Есть ли способ сделать это в git? Если нет, каковы мои варианты? Я знаю, что могу получить хэш последнего фиксации через git ls-remote

ответ

4

Одним из вариантов может быть продолжение и клонирование репо, но только с глубиной 1. Это должно сделать очень быструю загрузку.

Затем вы можете проверить верхушку метки времени мастера.

Пример:

git clone --depth 1 https://github.com/jquery/jquery.git jquery 

См this статьи для получения дополнительной информации.

Git поддерживает понятие «мелкого клон», который является более значимым сжато способом описания локального хранилища с истории усекается до определенной глубины в ходе операции клонирования. К , предоставляя аргумент команды -depth 1 команде clone, процесс будет копировать только последнюю версию всего в репозитории.

-

Другой вариант, если ваша цель репо на GitHub, было бы использовать REST API GitHub как это:

GET /repos/:owner/:repo/commits/:sha 

Вы можете разобрать ответ для фиксации-х метки времени ,

Дополнительная информация: https://developer.github.com/v3/repos/commits/#get-a-single-commit

Смежные вопросы