Git: как получить все файлы на определенную дату

Я уверен, что это можно сделать (?) (в чистоте это было бы довольно просто).

Ответ 1

Не забывайте временную метку файла в DVCS, например Git.
Есть только фиксация метки времени, и вы можете легко проверить фиксацию с определенной даты.

git checkout [email protected]{1 month 2 weeks 3 days 1 hour 1 second ago}

(Примечание: такая проверка даст вам отдельно стоящий HEAD)


В ClearCase это легко , если вы установите для параметра "сохранить время файла" значение true.
(если нет, вы фактически записываете время проверки каждого файла, что немного похоже на отметку времени Git commit, за исключением всех файлов)

Ответ 2

Используйте git log, чтобы определить подходящую версию для переключения, например:

git log --since='2010-04-01' --until='2010-04-02'

Это покажет все коммиты в 2010-04-01, поэтому просто выберите тот, который соответствует моменту, в котором вы хотите файлы, и обратите внимание на его идентификатор фиксации. Затем просто используйте git checkout COMMIT-ID, чтобы переключить рабочее пространство на это commit. Это отделит ваше рабочее пространство (HEAD) от текущей ветки, используйте git checkout master для возврата.

Ответ 3

сначала вы должны получить строку, которая идентифицирует фиксацию:

git rev-list -n 1 --before="2009-07-27 13:37" origin/master

он печатает строку (например, XXXX), скопируйте ее и выполните следующую команду:

git checkout XXXX