Mientras estoy aprendiendo sobre git, sigo encontrando los términos HEAD, master, origin, y no estoy seguro de cuáles son las diferencias. Si entiendo correctamente, HEAD siempre es igual a la última revisión. Y si es así, ¿es esa la última revisión de todo el repositorio, o de una rama o etiqueta específica? Esto es muy confuso He leído muchos tutoriales sobre esto y cosas como ramificación/fusión, pero todavía no puedo entenderlo.¿Cuáles son los conceptos de git de HEAD, master, origin?
Respuesta
Recomiendo encarecidamente el libro "Pro Git" by Scott Chacon. Tómese el tiempo y léalo realmente, mientras explora un repositorio de git real como lo hace.
HEAD: el commit actual de su repositorio está activado. La mayoría de las veces HEAD
apunta a la última confirmación en su sucursal, pero ese no tiene que ser el caso. HEAD
realmente solo significa "a qué apunta mi repositorio actualmente".
En el caso de que la confirmación HEAD
se refiera a que no es la punta de ninguna rama, esto se denomina "cabeza desprendida".
master: nombre de la rama predeterminada que git crea para usted cuando crea por primera vez un repositorio. En la mayoría de los casos, "maestro" significa "la rama principal". La mayoría de las tiendas tienen a todos empujando para dominar, y el maestro se considera la vista definitiva del repositorio. Pero también es común que las ramas de lanzamiento se hagan fuera de master para su lanzamiento. Su repositorio local tiene su propia rama principal, que casi siempre sigue al maestro de un repositorio remoto.
origen: el nombre predeterminado que da git a su repositorio remoto principal. Tu caja tiene su propio repositorio, y lo más probable es que lo envíes a un repositorio remoto al que tú y todos tus compañeros de trabajo presiona. Ese repositorio remoto casi siempre se llama origen, pero no tiene que ser así.
HEAD
es una noción oficial en git. HEAD
siempre tiene un significado bien definido. master
y origin
son nombres comunes generalmente utilizados en git, pero no tienen que serlo.
HEAD
no es la última revisión, es el actual revisión. Por lo general, es la última revisión de la rama actual, pero no tiene que ser así.
master
es un nombre comúnmente dado a la rama principal, pero podría llamarse cualquier otra cosa (o no podría haber una rama principal).
origin
es un nombre comúnmente dado al control remoto principal. remote es otro repositorio del que puede extraer y presionar. Por lo general, está en algún servidor, como github.
¿Puedes dar un ejemplo de cuándo HEAD es actual pero no lo es más? Nunca había visto eso antes. ¿O quiere decir que podría no ser la última porque su sucursal está detrás de la rama remota que está rastreando? –
@MattGreer: Si revisa algo más antiguo (como una etiqueta como 'git checkout v1.1'), su HEAD cambiará a la confirmación de esa etiqueta. Puede que no sea el último compromiso. –
Si bien esto no responde directamente a la pregunta, hay un gran libro disponible de forma gratuita que lo ayudará a aprender los conceptos básicos llamados ProGit. Si prefiere la versión de madera muerta a una colección de bits, puede comprarla en Amazon.
Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. – nha
- 1. Git branch named origin/HEAD -> origin/master
- 2. Git remote tiene master pero no HEAD
- 3. "git rebase origin" vs. "git rebase origin/master"
- 4. Mi rama git muestra 'origin/master' y 'origin/HEAD' en Sourcetree y no sé cómo fusionar los dos
- 5. "git push origin master" se congela
- 6. git pull origin master no actualiza origen/master?
- 7. ¿Qué hace git merge origin/master do?
- 8. Git Diff entre HEAD y SVN Master
- 9. ¿Por qué hay una entrada `remotes/origin/HEAD -> origin/master` en mi salida` git branch -l -a`?
- 10. GIT - empujando a (GitHub) origin master no hace nada
- 11. ¿De qué sirve `-u` en 'git push -u origin master`?
- 12. Git. Remote HEAD es ambiguo
- 13. Diferencia entre HEAD y master
- 14. ¿Qué significan los términos fork, master, origin, push, pull para Git y Github?
- 15. Error de Git: no se puede agregar a .git/logs/refs/remotes/origin/master: Permiso denegado
- 16. git push origin master da permiso denegado error (github)
- 17. ¿Qué son los conceptos?
- 18. ¿Cuáles son los 3 principales conceptos principales en WPF?
- 19. Convertir git master HEAD point en actual HEAD de la rama
- 20. configure git para que "git pull" en lugar de "git pull Origin master"?
- 21. ¿Cuáles son los conceptos básicos en la programación funcional?
- 22. git fetch vs. git fetch origin master tienen diferentes efectos en la rama de seguimiento
- 23. ¿Es "refs/heads/master" lo mismo que "refs/remotes/origin/master" en Git?
- 24. git push CABEZA Gerrit: refs/a/maestro utilizan en lugar de master git push origin
- 25. ¿Cuáles son los comandos destructivos en git?
- 26. ¿Cuáles son los conceptos básicos para tratar los eventos de entrada de usuario en Android?
- 27. rama accidentalmente creado con el nombre origin/master
- 28. Git - "Tu sucursal está por delante de 'origin/master' por 3 commits."
- 29. ¿Cuáles son las diferencias entre estos comandos de git diff?
- 30. git - Tu sucursal está por delante de 'origin/master' por 1 commit
¿Qué quiere decir con "HEAD realmente solo significa" qué es lo que mi repositorio actualmente apunta a "." Si hay múltiples ramas en un repositorio, ¿cuál es la CABEZA de acuerdo a usted? si hay 3 ramas (junto con el maestro), y se realizó una confirmación de necesidad en branchA, HEAD aún puede estar en la confirmación del 'maestro'. Entonces, ¿cuál es la revisión que apunta el repositorio ahora? – OK999