Cuando corro:
git push origin branchname
¿Qué es exactamente origin
y por qué tengo que escribirlo antes del nombre de la sucursal?
Cuando corro:
git push origin branchname
¿Qué es exactamente origin
y por qué tengo que escribirlo antes del nombre de la sucursal?
Respuestas:
origin
es un alias en su sistema para un repositorio remoto particular. En realidad no es una propiedad de ese repositorio.
Haciendo
git push origin branchname
estás diciendo que empujes al origin
repositorio. No es necesario nombrar el repositorio remoto origin
: de hecho, el mismo repositorio podría tener un alias diferente para otro desarrollador.
Los controles remotos son simplemente un alias que almacena la URL de los repositorios. Puede ver qué URL pertenece a cada control remoto utilizando
git remote -v
En el push
comando, puede usar controles remotos o simplemente puede usar una URL directamente. Un ejemplo que usa la URL:
git push git@github.com:git/git.git master
git push
, puede ver que primero verifica la configuración de ese repositorio (con el que puede verificar git config --list
) una clave llamada branch.<branchname>.remote
. Si eso no está configurado, "el valor predeterminado es el origen" - git-scm.com/docs/git-push
origin
no es el nombre del repositorio remoto. Es más bien un alias local establecido como una clave en lugar de la URL del repositorio remoto.
Evita que el usuario tenga que escribir la URL remota completa al solicitar un empuje.
Este nombre se establece de forma predeterminada y por convención por Git cuando se clona desde un control remoto por primera vez.
Este nombre de alias no está codificado y podría cambiarse usando el siguiente símbolo del sistema:
git remote rename origin mynewalias
Eche un vistazo a http://git-scm.com/docs/git-remote para obtener más aclaraciones.
Git tiene el concepto de "controles remotos", que son simplemente URL a otras copias de su repositorio. Cuando clonas otro repositorio, Git crea automáticamente un control remoto llamado "origen" y lo apunta.
Puede ver más información sobre el control remoto escribiendo git remote show origin
.
git remote show origin
, ¿por qué no simplemente git show origin
? Debe haber una razón, ¿qué es? Gracias.
origin
es el alias predeterminado de la URL de su repositorio remoto.
¡Simple! "origen" es justo lo que apodaste tu repositorio remoto cuando ejecutaste un comando como este:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
A partir de entonces, Git sabe que "origen" apunta a ese repositorio específico (en este caso, un repositorio GitHub). Podrías haberlo llamado "github" o "repo" o lo que quisieras.
Esto también me confundió, y a continuación es lo que he aprendido.
Cuando clonas un repositorio, por ejemplo desde GitHub:
origin
es el alias de la URL desde la que clonó el repositorio. Tenga en cuenta que puede cambiar este alias.
Hay una master
rama en el repositorio remoto (con alias origin
). También hay otra master
rama creada localmente.
Se puede encontrar más información en esta pregunta SO: bifurcación de Git: maestro vs. origen / maestro vs. controles remotos / origen / maestro
Cuando clona un repositorio con git clone
, crea automáticamente una conexión remota llamada origin
apuntando hacia el repositorio clonado. Esto es útil para los desarrolladores que crean una copia local de un repositorio central ya que proporciona una manera fácil de realizar cambios ascendentes o publicar confirmaciones locales. Este comportamiento también es la razón por la cual la mayoría de los proyectos basados en Git llaman a su origen de repositorio central.
La mejor respuesta aquí:
https://www.git-tower.com/learn/git/glossary/origin
En Git, "origen" es un nombre abreviado para el repositorio remoto del que se clonó originalmente un proyecto. Más precisamente, se usa en lugar de la URL de ese repositorio original, y por lo tanto hace que la referencia sea mucho más fácil.
Desde https://www.git-tower.com/learn/git/glossary/origin :
En Git, "origen" es un nombre abreviado para el repositorio remoto del que se clonó originalmente un proyecto. Más precisamente, se usa en lugar de la URL de ese repositorio original, y por lo tanto hace referencia mucho más fácil.
Tenga en cuenta que el origen no es en absoluto un nombre "mágico", sino solo una convención estándar. Aunque tiene sentido dejar esta convención intacta, puede cambiarle el nombre perfectamente sin perder ninguna funcionalidad.
En el siguiente ejemplo, el parámetro URL para el comando "clonar" se convierte en el "origen" para el repositorio local clonado:
git clone https://github.com/gittower/git-crash-course.git
Las otras respuestas dicen que origin
es un alias para la URL de un repositorio remoto que no es del todo exacto. Cabe señalar que una dirección que comienza con http
una URL es una que comienza con git@
un URI o identificador universal de recursos.
Todas las URL son URI, pero no todas las URI son URL.
En resumen, cuando escribes git remote add origin <URI>
le estás diciendo a tu git local que cada vez que usas la palabra origin
te refieres al URI que especificaste. Piense en ello como una variable que tiene un valor.
Y al igual que una variable, puede que el nombre lo que quieras (por ejemplo. github
, heroku
, destination
, Etc).
remoto (alias de URL de repositorio) → origen (alias ascendente) → maestro (alias de rama);
remote
, Nivel mismo que working directory
, index
, repository
,
origin
, mapa de rama de repositorio local a rama de repositorio remoto