Как в 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
его.