2010-09-24 3 views
17

Я пытаюсь клонировать хранилище git с определенной даты. Даже если это невозможно. Можно ли клонировать git-репозиторий, а затем отбросить его до определенной даты?Как в Git, клонировать удаленный (GitHub) репозиторий с заданной даты

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

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

ответ

21

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

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

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

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

3

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

+1

+1 для ветвления –

+3

Реверсирование откажется от любой новой истории, которая никогда не будет хорошим вариантом. Ветвление от обязательства, которое очень желательно вернуть. –

+0

Это разрушительно, и есть намного лучшие способы сделать это. – Daenyth

4

Могут быть что-то вроде этого:.

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

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

+3

Черт. Я редактировал свой ответ, чтобы добавить эту точную команду, когда вы ответили! –

+5

хе-хе, случается с лучшими из нас :) –

1

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

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

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

Смежные вопросы