Получить снимок репозитория git на определенную дату

Скажем, у меня есть репо с несколькими банками.

Можно ли получить снимок репо с определенной датой/временем, используя обычный git foo? (В настоящее время у нас есть дампы кода каждый день, и я думаю о способах их удаления)

(Предполагая, что никакие ветки не удалены навсегда, а история коммитов git не использовалась)

Изменить: возможны промежуточные слияния ветвей.


person Anshul Goyal    schedule 26.09.2013    source источник


Ответы (1)


Остерегайтесь @{<date>}, основанного на журнале ссылок (то есть ограниченном по умолчанию 90 днями).
См. "Указание версий" в git rev-parse .

"оформить заказ git по дате" предлагает другой метод:

git checkout `git rev-list -n 1 --before="2013-09-25 5:00" master`

Обратите внимание на это предупреждение:

rev-list не будет работать, если у вас есть объединенные ветки.
Например: я хотел вернуться к V5 ветке, но оказался в V4.2 ветке.

Более надежным способом было бы добавить --first-parent:

git checkout `git rev-list -n 1 --first-parent --before="2013-09-25 5:00" master`
person VonC    schedule 26.09.2013