Git
Emprendedor
Buscar..
Introducción
Después de cambiar, configurar y confirmar el código con Git, se requiere un empuje para hacer que sus cambios estén disponibles para otros y transferir sus cambios locales al servidor de repositorio. Este tema cubrirá cómo insertar correctamente el código usando Git.
Sintaxis
- git push [-f | --force] [-v | --verbose] [<remote> [<refspec> ...]]
Parámetros
Parámetro | Detalles |
---|---|
--fuerza | Sobrescribe la referencia remota para que coincida con la referencia local. Puede hacer que el repositorio remoto pierda confirmaciones, así que úselo con cuidado . |
--verboso | Corre verbalmente. |
<remote> | El repositorio remoto que es el destino de la operación de inserción. |
<refspec> ... | Especifique qué referencia remota se actualizará con qué referencia local u objeto. |
Observaciones
Río arriba Río abajo
En términos de control de fuente, usted está "en la corriente descendente" cuando copia (clona, realiza el pago, etc.) desde un repositorio. La información fluyó "hacia abajo" hacia ti.
Cuando realiza cambios, generalmente desea enviarlos de vuelta "en sentido ascendente" para que ingresen en ese repositorio, de modo que todos los que proceden de la misma fuente trabajen con los mismos cambios. Esto es principalmente un problema social de cómo todos pueden coordinar su trabajo en lugar de un requisito técnico de control de fuente. Desea incluir sus cambios en el proyecto principal para no seguir líneas de desarrollo divergentes.
A veces, leerá sobre los administradores de paquetes o versiones (las personas, no la herramienta) hablando sobre el envío de cambios a "upstream". Eso generalmente significa que tuvieron que ajustar las fuentes originales para poder crear un paquete para su sistema. No quieren seguir haciendo esos cambios, por lo que si los envían "en sentido ascendente" a la fuente original, no deberían tener que lidiar con el mismo problema en la próxima versión.
( Fuente )
empujar
git push
empujará su código a su corriente arriba. Dependiendo de la configuración de inserción, empujará el código de su rama actual (por defecto en Git 2.x) o de todas las ramas (por defecto en Git 1.x).
Especificar repositorio remoto
Cuando se trabaja con git, puede ser útil tener varios repositorios remotos. Para especificar un repositorio remoto para enviar, simplemente agregue su nombre al comando.
git push origin
Especificar rama
Para empujar a una rama específica, diga feature_x
:
git push origin feature_x
Establecer la rama de seguimiento remoto
A menos que la rama en la que está trabajando originalmente provenga de un repositorio remoto, simplemente el uso de git push
no funcionará la primera vez. Debe ejecutar el siguiente comando para decirle a git que empuje la rama actual a una combinación remota / rama específica
git push --set-upstream origin master
Aquí, master
es el nombre de la rama en el origin
remoto. Puede usar -u
como una abreviatura de --set-upstream
.
Empujando a un nuevo repositorio
Para enviar a un repositorio que aún no ha creado, o está vacío:
- Cree el repositorio en GitHub (si corresponde)
- Copie la url que recibió, en el formulario
https://github.com/USERNAME/REPO_NAME.git
- Vaya a su repositorio local y ejecute
git remote add origin URL
- Para verificar que fue agregado, ejecute
git remote -v
- Para verificar que fue agregado, ejecute
- Ejecutar
git push origin master
Tu código debería estar ahora en GitHub
Para más información ver Agregar un repositorio remoto
Explicación
El código de inserción significa que git analizará las diferencias de sus confirmaciones locales y remotas y las enviará para que se escriban en el sentido ascendente. Cuando push se realiza correctamente, su repositorio local y el repositorio remoto se sincronizan y otros usuarios pueden ver sus confirmaciones.
Para obtener más detalles sobre los conceptos de "upstream" y "downstream", consulte Comentarios .
Fuerza de empuje
A veces, cuando tiene cambios locales incompatibles con los cambios remotos (es decir, cuando no puede avanzar rápidamente la rama remota, o la rama remota no es un antecesor directo de su rama local), la única forma de impulsar sus cambios es forzando .
git push -f
o
git push --force
Notas importantes
Esto sobrescribirá cualquier cambio remoto y su control remoto coincidirá con su local.
Atención: el uso de este comando puede hacer que el repositorio remoto pierda confirmaciones . Además, se recomienda encarecidamente que no ejerza un impulso forzoso si está compartiendo este repositorio remoto con otros, ya que su historial conservará cada compromiso sobrescrito, lo que hace que su trabajo no esté sincronizado con el repositorio remoto.
Como regla general, solo forzar empuje cuando:
- Nadie, excepto usted, hizo los cambios que está intentando sobrescribir.
- Puede forzar a todos a clonar una copia nueva después del empuje forzado y hacer que todos apliquen sus cambios (las personas pueden odiarlo por esto).
Empuje un objeto específico a una rama remota
Sintaxis general
git push <remotename> <object>:<remotebranchname>
Ejemplo
git push origin master:wip-yourname
Llevará su rama maestra a la rama de origen de wip-yourname
(la mayoría de las veces, el repositorio desde el que clonó).
Eliminar rama remota
Eliminar la rama remota equivale a empujar un objeto vacío hacia ella.
git push <remotename> :<remotebranchname>
Ejemplo
git push origin :wip-yourname
Se eliminará la rama remota wip-yourname
En lugar de usar los dos puntos, también puede usar la marca --delete, que en algunos casos se puede leer mejor.
Ejemplo
git push origin --delete wip-yourname
Empuje un solo commit
Si tiene una única confirmación en su rama que desea enviar a un control remoto sin presionar otra cosa, puede usar lo siguiente
git push <remotename> <commit SHA>:<remotebranchname>
Ejemplo
Asumiendo una historia git como esta
eeb32bc Commit 1 - already pushed
347d700 Commit 2 - want to push
e539af8 Commit 3 - only local
5d339db Commit 4 - only local
para enviar solo el commit 347d700 al maestro remoto use el siguiente comando
git push origin 347d700:master
Cambiar el comportamiento de empuje por defecto
Actual actualiza la rama en el repositorio remoto que comparte un nombre con la rama de trabajo actual.
git config push.default current
Los impulsos simples a la rama ascendente, pero no funcionarán si la rama ascendente se llama otra cosa.
git config push.default simple
Empuja aguas arriba de la rama aguas arriba, no importa cómo se llama.
git config push.default upstream
Coincidencia empuja todas las ramas que coinciden en el local y el remoto git config push.default en sentido ascendente
Después de haber configurado el estilo preferido, use
git push
para actualizar el repositorio remoto.
Etiquetas de empuje
git push --tags
Empuja todas las git tags
en el repositorio local que no están en el remoto.