remota - git push example
Cómo copiar una rama local de Git a un repositorio remoto (4)
He tomado los siguientes pasos hasta ahora:
- Clonado un repositorio remoto de Git
- Ramificó la rama maestra a un experimento
- 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?
Aquí está la página autorizada de github para la administración remota de github http://github.com/guides/push-a-branch-to-github . Te ayudará a responder todas tus preguntas.
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: