2010-09-24 16 views

risposta

21

La clonazione del repository fornisce l'intera cronologia di commit di tutto il codice sorgente.

È sufficiente scorrere indietro fino a git log e trovare il commit desiderato sulla data di destinazione. L'esecuzione di git checkout SHA dove SHA è l'hash di commit che fornirà lo stato del codice sorgente in quella data.

edit:

git log --since=2010-06-05 --until=2010-06-06 contribuirà a restringere il campo!

3

È possibile utilizzare il comando Ripristina di git per ripristinare ogni commettere di nuovo alla data che si sta cercando, oppure si può semplicemente creare aa nuova filiale a commettere siete interessati a

+1

+1 per diramazione –

+3

Il ripristino abbandona qualsiasi cronologia più recente che non è mai una buona opzione. Branching off del commit ha preferito immensamente il ripristino. –

+0

Questo è distruttivo e ci sono molti modi migliori per farlo. – Daenyth

4

Forse qualcosa di simile a questo:.

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

trovare uno dei commit id gradite là poi fare un git checkout <checkout id>

+3

Accidenti. Stavo modificando la mia risposta per aggiungere quel comando esatto quando hai risposto! –

+5

hehe, capita al meglio di noi :) –

1

considerare i seguenti commit:

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

Non c'è modo in cui Git può capire se si desidera eseguire il commit A o B. Pertanto, è necessario utilizzare git log o gitk per ottenere lo SHA1 del commit da quella data desiderata e quindi da git checkout.

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