Git: как получить все файлы на определенную дату - PullRequest
12 голосов
/ 02 июля 2010

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

Ответы [ 3 ]

12 голосов
/ 02 июля 2010

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

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

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

4 голосов
/ 02 июля 2010

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

git checkout master@{1 month 2 weeks 3 days 1 hour 1 second ago}

(Примечание: такая проверка дала бы вам отдельную ГОЛОВУ )


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

2 голосов
/ 05 мая 2017

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

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

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

git checkout XXXX
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...