repositorio remota rama origin example eliminar crear clonar cambiar git version-control distributed

remota - git push example



Cómo copiar una rama local de Git a un repositorio remoto (4)

He tomado los siguientes pasos hasta ahora:

  1. Clonado un repositorio remoto de Git
  2. Ramificó la rama maestra a un experimento
  3. código editado / probado / comprometido en la rama experimental

Ahora, no estoy listo para fusionar experimental en maestro. Sin embargo, quiero volver a enviarlo al repositorio remoto ya que es el repositorio que comparto con algunos colegas. Me gustaría que vieran lo que hice en la rama experimental. Normalmente solo tengo acceso al repositorio remoto a través de SSH.

¿Cómo comparto mi sucursal local en el repositorio remoto, sin afectar la rama maestra del repositorio remoto?



De acuerdo con la página de manual de git push :

git push origin experimental

Encuentre una referencia que coincida con experimental en el repositorio fuente (lo más probable es que encuentre refs/heads/experimental ), y actualice la misma referencia (ej. refs/heads/experimental ) en el repositorio de origen con ella.
Si experimental no existiera remotamente, se crearía .

Esto es lo mismo que:

git push origin experimental:refs/heads/experimental

Cree la rama experimental en el repositorio de origen copiando la rama experimental actual.
Este formulario solo es necesario para crear una nueva rama o etiqueta en el repositorio remoto cuando el nombre local y el nombre remoto son diferentes ; de lo contrario, el nombre de la referencia funcionará por sí solo.

O, como se menciona en la sugerencia de git , puede configurar un "Control remoto predeterminado de la sucursal":

Puede usar git config para asignar un control remoto predeterminado a una rama determinada. Este control remoto predeterminado se usará para empujar esa rama a menos que se especifique lo contrario.

Esto ya está hecho para usted cuando usa git clone, lo que le permite usar git push sin ningún argumento para empujar la rama maestra local para actualizar la rama maestra del repositorio de origen.

git config branch.<name>.remote <remote>

se puede usar para especificar esto manualmente.

Jan sugiere (para git> = 1.7.0 ) la opción push -u (o push --set-upstream ):

Para cada rama que esté actualizada o presionada con éxito, agregue una referencia en sentido ascendente (seguimiento), utilizada por el comando sin argumento git-pull (1) y otros comandos.

De esta forma, no tienes que hacer ninguna configuración de git.

git push -u origin experimental


Si el nombre de su sucursal es experimental , y el nombre del control remoto es su origin , entonces es

git push origin experimental


git push -u <remote-name> <branch-name> no funciona si la rama recién creada no se genera a partir del mismo repositorio, es decir, si no ha creado la nueva rama con git checkout -b new_branch , entonces Esto no funcionará.

Por ejemplo, he clonado dos repositorios diferentes localmente y tuve que copiar repo2 / branch1 para repo1 / y luego presionarlo también.

This enlace me ayudó a impulsar mi rama local (clonada desde otro repositorio) a mi repositorio remoto: