¿Cómo envío una nueva sucursal local a un repositorio Git remoto y también hago un seguimiento de ella?

Resuelto Roni Yaniv asked hace 14 años • 19 respuestas

Cómo puedo:

  1. Cree una sucursal local desde otra sucursal (a través git branchde o git checkout -b).

  2. Empuje la rama local al repositorio remoto (es decir, publíquela), pero hágala rastreable para que git pullfuncione git push.

Roni Yaniv avatar May 04 '10 19:05 Roni Yaniv
Aceptado

En Git 1.7.0 y posteriores, puedes consultar una nueva rama:

git checkout -b <branch>

Edite archivos, agregue y confirme. Luego presione con la opción -u(abreviatura de --set-upstream) :

git push -u origin <branch>

Git configurará la información de seguimiento durante el envío.

Daniel Ruoso avatar Jun 03 '2011 20:06 Daniel Ruoso

Si no comparte su repositorio con otras personas, esto es útil para enviar todas sus ramas al control remoto y --set-upstreamrealizar un seguimiento correcto por usted:

git push --all -u

(No es exactamente lo que pedía el OP, pero esta frase es bastante popular)

Si comparte su repositorio con otras personas, esta no es una buena forma, ya que obstruirá el repositorio con todas sus ramas experimentales poco fiables.

ErichBSchulz avatar Jan 20 '2014 11:01 ErichBSchulz

Antes de la introducción de git push -u, no existía ninguna git pushopción para obtener lo que desea. Tenías que agregar nuevas declaraciones de configuración.

Si crea una nueva rama usando:

$ git checkout -b branchB
$ git push origin branchB:branchB

Puedes usar el git configcomando para evitar editar directamente el .git/configarchivo:

$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB

O puedes editar manualmente el .git/configarchivo para agregar información de seguimiento a esta rama:

[branch "branchB"]
    remote = origin
    merge = refs/heads/branchB
Lohrun avatar May 04 '2010 13:05 Lohrun

En pocas palabras, para crear una nueva sucursal local , haga lo siguiente:

git branch <branch-name>

Para enviarlo al repositorio remoto , haga:

git push -u origin <branch-name>
piyushmandovra avatar Apr 24 '2015 12:04 piyushmandovra

Una ligera variación de las soluciones ya dadas aquí:

  1. Cree una sucursal local basada en alguna otra sucursal (remota o local):

    git checkout -b branchname
    
  2. Empuje la rama local al repositorio remoto (publicar), pero hágala rastreable para git pullque git pushfuncione de inmediato.

    git push -u origin HEAD
    

    Usar HEADes una "forma práctica de enviar la rama actual al mismo nombre en el control remoto". Fuente: https://git-scm.com/docs/git-push En términos de Git, HEAD (en mayúsculas) es una referencia a la parte superior de la rama (árbol) actual.

    La -uopción es simplemente abreviatura de --set-upstream. Esto agregará una referencia de seguimiento ascendente para la rama actual. puedes verificar esto mirando en tu archivo .git/config:

    Ingrese la descripción de la imagen aquí

bg17aw avatar Jul 05 '2016 08:07 bg17aw

simplemente lo hago

git push -u origin localBranch:remoteBranchToBeCreated

sobre un proyecto ya clonado.

Git crea una nueva rama nombrada remoteBranchToBeCreateden mis confirmaciones que hice en localBranch.

Editar : esto cambia el upstream de su sucursal local actual (posiblemente llamada localBranch) a origin/remoteBranchToBeCreated. Para solucionarlo, simplemente escriba:

git branch --set-upstream-to=origin/localBranch

o

git branch -u origin/localBranch

Entonces, su sucursal local actual ahora rastrea origin/localBranchel origen.

Arda avatar Mar 20 '2017 11:03 Arda