Sono sicuro che questo può essere fatto (?) (In clearcase sarebbe abbastanza semplice).git: come recuperare tutti i file a partire da una certa data
risposta
Non dimenticare file timestamp are not recorded in un DVCS come Git.
Sono disponibili solo timestamp di commit e puoi effettuare facilmente il checkout di un commit da una certa data.
git checkout [email protected]{1 month 2 weeks 3 days 1 hour 1 second ago}
(Nota: una tale cassa darebbe una detached HEAD)
In ClearCase, questo è facile a condizione che si imposta l'opzione "preservare il tempo di file" a true.
(se non, è in realtà di registrare il tempo di arrivo di ogni file, che è un po 'come la git commit timestamp, tranne che per ogni file)
Ok, ma c'è un'ulteriore complicazione. Il mio repository è un clone di un repository remoto. Quando do una data, dice che il log ritorna solo alla data in cui il mio repository è stato clonato. Come posso utilizzare la cronologia del repository remoto? –
@steve: utilizzando il refspec remoto anziché uno locale. Vedi http://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html#_specifying_revisions: 'git checkout/refs/remotes/master @ {...}' – VonC
fatale: '/ refs/remote/master @ {2010-06-04}' è esterno al repository –
Usa git log
per determinare una revisione adatto per passare, ad esempio:
git log --since='2010-04-01' --until='2010-04-02'
Questo mostrerà tutti i commit del 2010-04-01, quindi scegli quello che corrisponde all'istante in cui desideri i file e prendi nota del suo ID di commit. Quindi basta usare git checkout COMMIT-ID
per commutare lo spazio di lavoro su quel commit. Questo scollegherà il tuo spazio di lavoro (HEAD) dal ramo corrente, usa git checkout master
per tornare.
Attualmente ho riscontrato il problema che 'git checkout master @ {
... Suppongo che qualcosa del genere funzioni: 'git checkout $ (git log -n 1 --until = '2017-04-02: 00: 00: 00' --pretty = '% H')' ma sembra ancora piuttosto hacky. – exhuma
prima, si deve ottenere la stringa che identifica il commit:
git rev-list -n 1 --before="2009-07-27 13:37" origin/master
si stampa la stringa (per esempio XXXX), copiarlo e fare questo comando:
git checkout XXXX
- 1. Scegliere un file a partire da una data stringa
- 2. Ottieni tutti i file da VSS per una data specifica?
- 3. Rimuovere tutti i file git da una directory?
- 4. Iterate in giorni, a partire da x data fino a una data di fine
- 5. Javascript - Imposta la data da 30 giorni a partire da
- 6. nascondi tutti i mesi precedenti a partire dal mese corrente
- 7. git checkout tutti i file
- 8. Trova la data più vicina a una certa data
- 9. SQL Come visualizzare i dati prima di una certa data
- 10. A partire da Gradle
- 11. Come recuperare i file da una cartella di lavoro git danneggiata
- 12. Copia tutti i file con una certa estensione da tutte le sottodirectory
- 13. Come recuperare i file non monitorate con git scorta
- 14. Git - come recuperare da un blob mancante
- 15. Come recuperare da un file danneggiato corrotto in git
- 16. Come recuperare tutti i metodi pubblici da * .dll
- 17. Prendi il numero della settimana da una certa data
- 18. MySQL ottenere la data prossimo futuro per certa data, a partire dalle date situati in tabella diversa avendo ID comune
- 19. Come recuperare tutti i risultati in lucene.net
- 20. Git:. Rinominare o spostare tutti i file in una volta
- 21. Imposta maxDate su jquery ui datepicker a una certa data
- 22. Rimuovere tutti i file per git commit?
- 23. Git - tracciare automaticamente tutti i file in una directory
- 24. Ripristina i file rimossi da Git checkout
- 25. Git: elenca tutti i file tracciati
- 26. Come recuperare tutti i dati in una query
- 27. Come recuperare da file indice cancellati Solr?
- 28. Git: come elencare tutti i file sotto controllo di versione insieme alla data dell'autore?
- 29. Come conservare tutti i file ignorati in git clean -fd?
- 30. Git recuperare un elenco di tutti i file modificati in un ramo
Nota: sistemi distribuiti (come Git) le date e gli orari registrati potrebbero non essere affidabili o accurati al 100% poiché possono essere registrati su una miriade di macchine. Speriamo che la maggior parte delle macchine siano ragionevolmente vicine al "tempo reale", ma potrebbero esserci strane anomalie in agguato nella rete di contributori. –