Как в Git клонировать удаленный (GitHub) репозиторий с указанной даты

Я пытаюсь клонировать git-репозиторий с определенной даты. Даже если это невозможно. Можно ли клонировать репозиторий git и затем откатить его до определенной даты?

Пример: мой репозиторий был обновлен с мая 2010 года, но я бы хотел получить версию с 5 июня. Я хотел бы запустить следующую команду:

git clone [email protected]:projectfolder -date 06-05-2010

Ответы на вопрос(5)

Рассмотрим следующие коммиты:

5 May (A) -- 7 May -- master (current)
5 May (B) -- 7 May /

Git не может понять, хотите ли вы совершить коммитA или жеB, Итак, вы должны использоватьgit log или жеgitk чтобы получить SHA1 коммита с той даты, которую вы хотите, а затемgit checkout Это.

Решение Вопроса

кода.

Вам нужно только прокрутить назадgit log и найдите желаемый коммит в целевую дату. Бегgit checkout SHA гдеSHA хеш коммита даст вам состояние исходного кода на эту дату.

редактировать:

git log --since=2010-06-05 --until=2010-06-06 поможет сузить это!

git clone [email protected]:projectfolder
git reset --hard $(git rev-list -1 $(git rev-parse --until=2010-06-06) master)

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

 Chuck Vose24 сент. 2010 г., 22:24
+1 за ветвление
 Jake Wharton24 сент. 2010 г., 22:29
Возврат оставит любую новую историю, которая никогда не будет хорошим вариантом. Ветвление коммита безмерно предпочитало возвращаться.
 Daenyth24 сент. 2010 г., 23:03
Это разрушительно, и есть гораздо лучшие способы сделать это.

git log --since=2010-06-05 --until=2010-06-05

Найдите один из идентификаторов коммитов, которые вам нравятся, и выполнитеgit checkout <checkout id>

 Chuck Vose24 сент. 2010 г., 22:29
хе-хе, случается с лучшими из нас :)
 Jake Wharton24 сент. 2010 г., 22:28
Черт. Я редактировал свой ответ, чтобы добавить именно эту команду, когда вы ответили!

Ваш ответ на вопрос