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

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

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

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

Ответы

Ответ 1

Клонирование репозитория даст вам всю историю фиксации всего исходного кода.

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

изменить:

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

Ответ 2

Возможно, что-то вроде этого:

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

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

Ответ 3

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

Ответ 4

Вы можете использовать команду git revert, чтобы вернуть все фиксации обратно к дате, которую вы ищете, или просто создать новую ветку в интересующем вас коммитете.

Ответ 5

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

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

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