¿Alguien podría decirme cómo clonar el primer compromiso? No quiero eliminar confirmaciones recientes, solo hago una copia clónica del estado inicial para poder tomar algunos de los archivos.Git: ¿Cómo clonar el primer compromiso?
Respuesta
Para responder a la pregunta que yo creo que hayas querido preguntar:
Usted puede obtener toda su repositorio en el estado de la primera comprometerse con:
git checkout <commit SHA1>
Después de terminar de jugar un poco, se puede hacer git checkout master
para volver a donde estabas.
Y usted puede conseguir los archivos individuales en su estado desde el primer comprometerse con:
git checkout <commit SHA1> <file or directory> ...
Una vez más, después de que haya terminado, puede hacerlo git checkout master <file or directory>
para volver a donde estabas.
No hay necesidad de "clonar" un compromiso (¿por el cual supongo que quiere decir clonar el repositorio y verificar el primer compromiso?). Por supuesto, si por alguna razón no puede modificar los archivos de su repositorio (por ejemplo, no desea que su creación no esté actualizada), puede, por supuesto, clonarlo, y luego hacer exactamente lo mismo en el repositorio clonado. .
Creo que todo lo que tiene que hacer es crear una nueva bifurcación a partir de la confirmación original que desee, verificarla y luego volver a fusionarla con la CABEZA de la sucursal en la que está trabajando.
Si abcxyz ... es el SHA1 del confíe que quiere y que está trabajando en la rama principal, esto es generalmente lo que se quiere hacer:
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
Estás creando oldskool a partir de un antecesor de master, por lo que la rebase lo va a adelantar rápidamente, y luego la fusión no es operativa. Sin cambio al maestro Si omite la rebase, la fusión también será un avance rápido, y de nuevo, no cambiará a maestro. – Cascabel
Creo que quiero hacer la misma cosa. Verifica la confirmación inicial y bifurca desde allí. No estoy seguro con la respuesta aceptada. Pero creo que podría (en parte) completar la pregunta original. Después de leer este hilo, sin embargo a ir con algunas secuencias de comandos de bash alrededor
git log --pretty=oneline master | tail -1
supongo que esperaba que habría alguna referencia o compromiso ish-árbol para esto.
Por lo tanto usted puede pagar el primer comprometerse con el siguiente comando:
git checkout `git log --pretty=oneline | tail -1 | sed 's/ .*$//'`
2017 actualización desde '12 (GIT 1.8.1), que tiene una mejor opción: git rev-list. Vea otras respuestas aquí o KyleMit at superuser para una mejor forma de scripting esto.
Si usaste 'git rev-list --all' en lugar de' git log --pretty = oneline master', no tendrías que analizar el mensaje de confirmación porque devuelve solo shas. Ver mi respuesta a [Usando git, ¿cómo puedo volver a la primera confirmación] (http://superuser.com/a/773366/180163) – KyleMit
Si por "primera confirmación", te refieres a la confirmación principal de una rama que no tiene ningún padre, entonces quieres usar git-rev-list para hacer eso. Sólo tiene que utilizar
git rev-list --max-parents=0 HEAD
que hará que su "Commit inicial" para la cabeza actual. Use maestro si lista o cualquier otra especificación de revisión hijo. envuelva en que $(...)
con el fin de utilizar que en una expresión, tales como:
git checkout $(git rev-list --max-parents=0 HEAD)
Gracias, esta es la única respuesta que cubre el caso general sin una copia intermedia/pegar paso. –
Gracias por la solución Jesse! –
- 1. octopress el primer compromiso
- 2. Problema con el primer compromiso con el repositorio de git
- 3. ¿Cambiar el primer compromiso del proyecto con Git?
- 4. En Git, ¿cómo difiero al primer compromiso de mi sucursal?
- 5. ¿Edita el compromiso raíz en Git?
- 6. git ¿puedo acelerar el compromiso?
- 7. Git: recuperar compromiso específico
- 8. Git - Preservar el trabajo sin compromiso
- 9. git clonar en el directorio de inicio
- 10. fecha de compromiso de Git
- 11. Cómo eliminar temporalmente el último compromiso con Git?
- 12. git clonar en una rama
- 13. Git log sin clonar el repositorio?
- 14. ¿Cómo eliminar el primer commit en git?
- 15. Cómo clonar selectivamente un repositorio git
- 16. Cómo clonar repositorios git en redmine?
- 17. Error al clonar git repositorio de "superficial"
- 18. encontrar el primer commit de un archivo en git
- 19. Cómo encontrar el compromiso de fusión anterior
- 20. Empujar sin compromiso en Mercurial o Git
- 21. ¿Cómo mueves un compromiso al área de preparación en git?
- 22. Cómo crear un parche sin compromiso en Git
- 23. clonar un repositorio git (en profundidad)
- 24. Clonar varios proyectos SVN con git-svn
- 25. Al clonar un repositorio svn en git, ¿debería clonar solo trunk o todo el repositorio?
- 26. ¿Cómo recuperar el compromiso desde 'estado de cabeza separada'?
- 27. Procedimiento para clonar repositorios Git que usan el subárbol
- 28. Git, No se puede clonar el repositorio en Windows
- 29. ¿Cómo puedo volver a clonar git: //foo.git OTRA VEZ?
- 30. ¿Cómo clonar solo una carpeta de un submódulo git?
un repositorio git puede tener varios '' comete la primera – knittl
Okay, chicos, no hacen un mal olor como de la primera cometer algoSiempre hay al menos una confirmación raíz, y es muy raro que haya múltiples, especialmente en un repositorio de un usuario que hace una pregunta básica como esta. – Cascabel