Qualcuno potrebbe dirmi come clonare il primo commit? Non voglio cancellare i commit recenti, basta fare una copia clone dello stato iniziale in modo da poter prendere alcuni dei file.Git: come clonare il primo commit?
risposta
Per rispondere alla domanda penso che si intende chiedere:
È possibile ottenere l'intero repository nello stato del primo commit con:
git checkout <commit SHA1>
Dopo aver finito di fare in giro, è può fare git checkout master
per tornare dove eri.
E si può ottenere i singoli file nel loro stato dal primo commit con:
git checkout <commit SHA1> <file or directory> ...
Anche in questo caso, dopo aver finito, si può fare git checkout master <file or directory>
per tornare a dove eravate.
Non è necessario "clonare" un commit (con il quale presumo si intenda clonare il repository e controllare il primo commit?). Naturalmente, se per qualche motivo non si può tollerare di modificare alcun file nel proprio repository (ad es. Non si vuole rendere obsoleto lo storico) si potrebbe ovviamente clonarlo, quindi fare esattamente la stessa cosa nel repository clonato .
Penso che tutto ciò che devi fare è creare un nuovo ramo dal commit originale che desideri, verificarlo e quindi unire di nuovo l'HEAD del ramo su cui stai lavorando.
Se abcxyz ... è la SHA1 del impegnano che si desidera e si sta lavorando nel ramo principale, questo è generalmente quello che ci si vuole fare:
git branch oldskool abcxyz... # creates a new branch called oldskool from the commit
git checkout oldskool
#make changes
git rebase master #bring the oldskool branch up to the HEAD of the master branch (shouldn't overwrite the changes in the files you edited)
git checkout master
git merge oldskool
Stai creando oldskool da un antenato di master, quindi il rebase lo sta solo facendo avanzare rapidamente, e quindi l'unione è un no-op. Nessun cambiamento da padroneggiare. Se salti il rebase, l'unione sarà anche un avanzamento rapido e, di nuovo, nessuna modifica al master. – Cascabel
penso che voglio fare la stessa cosa Verifica il commit iniziale e il ramo da lì. Non sono sicuro che la risposta sia accettata. Ma immagino che potrebbe (in parte) completare la domanda originale. Dopo aver letto questa discussione, io invece andrò con un po 'di bash scripting intorno
git log --pretty=oneline master | tail -1
Credo che speravo ci sarebbe qualche riferimento Commitee o albero-ish per questo.
Pertanto è possibile verifica la prima impegnarsi con il seguente comando:
git checkout `git log --pretty=oneline | tail -1 | sed 's/ .*$//'`
2017 aggiornamento: dal '12 (GIT 1.8.1), disponiamo di una soluzione migliore: git rev-list. Vedi altre risposte qui o KyleMit at superuser per un modo migliore di scrivere questo script.
Se hai usato 'git rev-list --all' invece di' git log --pretty = oneline master', non dovrai analizzare il messaggio di commit perché restituisce solo sha. Vedi la mia risposta a [Usare git, come tornare al primo commit] (http://superuser.com/a/773366/180163) – KyleMit
Se per "primo commit" si intende il commit genitore di un ramo che non ha genitori in sé, quindi si desidera utilizzare l'elenco git-rev per farlo. Basta usare
git rev-list --max-parents=0 HEAD
che otterrà il vostro "Initial commit" per l'attuale capo. Utilizzare il master se si elencano o qualsiasi altra specifica di revisione secondaria. avvolgere che in $(...)
al fine di utilizzare tale in un'espressione, come ad esempio:
git checkout $(git rev-list --max-parents=0 HEAD)
Grazie, questa è l'unica risposta che copre il caso generale senza una copia intermedia/incolla passo. –
Grazie per la correzione Jesse! –
- 1. Come faccio a rebase il primo commit?
- 2. Come ottenere l'ennesimo commit dal primo commit?
- 3. Git: spostare un commit "in primo piano"
- 4. Problemi con il primo commit su git repository
- 5. Come clonare il ramo con git-p4?
- 6. Modifica il primo commit del progetto con Git?
- 7. Come proteggere un file nel repository git da commit dopo il primo commit?
- 8. Git - come trovare primo commit di una specifica branca
- 9. Come annullare git rm -rf dirname senza un primo commit?
- 10. Come ripristinare il commit git iniziale?
- 11. Qual è la convenzione per il contenuto di un primo/primo commit Git?
- 12. Git, Impossibile clonare il repository su Windows
- 13. git commit -m vs. git commit -am
- 14. Come clonare selettivamente un repository git
- 15. Come clonare repository git su redmine?
- 16. Visual Studio Impossibile clonare il repository remoto (EOF anticipato) - GIT
- 17. git posso accelerare il commit?
- 18. Come clonare un repository git di stile git-flow?
- 19. git - come posso clonare il repository svn locale?
- 20. Come potrei usare git bisect per trovare il primo commit GOOD?
- 21. Come clonare il mio progetto Laravel considerando il fornitore ignorato
- 22. Come "riaprire" l'ultimo commit Git?
- 23. Git Commit Genes 'Order
- 24. Come eliminare git-notes commit?
- 25. Trova il primo figlio comune di due commit
- 26. Come posso trovare il primo commit di un ramo?
- 27. È possibile clonare solo determinati commit da un repository git con profondità 1?
- 28. Come posso modificare il messaggio di commit di qualsiasi commit in git?
- 29. Leggi l'ultimo commit del git e il numero di commit
- 30. Posso clonare un repository git da BitBucket?
un repository git può avere più 'primi impegna' – knittl
Ok, ragazzi, non fare una tale puzza sul primo commettere una cosaC'è sempre almeno un commit di root, ed è molto raro che ci sia più di uno, specialmente in un repository di un utente che fa una domanda di base come questa. – Cascabel