Как в Git клонировать удаленный (GitHub) репозиторий с указанной даты - PullRequest
18 голосов
/ 25 сентября 2010

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

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

git clone git@github.com:projectfolder -date 06-05-2010

Ответы [ 5 ]

22 голосов
/ 25 сентября 2010

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

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

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

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

5 голосов
/ 25 сентября 2010

Может быть, что-то вроде этого:

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

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

4 голосов
/ 25 сентября 2010
git clone git@github.com:projectfolder
git reset --hard $(git rev-list -1 $(git rev-parse --until=2010-06-06) master)
3 голосов
/ 25 сентября 2010

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

1 голос
/ 25 сентября 2010

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

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

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

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