¿Cómo envío una nueva sucursal local a un repositorio Git remoto y también hago un seguimiento de ella?
Cómo puedo:
Cree una sucursal local desde otra sucursal (a través
git branch
de ogit checkout -b
).Empuje la rama local al repositorio remoto (es decir, publíquela), pero hágala rastreable para que
git pull
funcionegit push
.
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.
Si no comparte su repositorio con otras personas, esto es útil para enviar todas sus ramas al control remoto y --set-upstream
realizar 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.
Antes de la introducción de git push -u
, no existía ninguna git push
opció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 config
comando para evitar editar directamente el .git/config
archivo:
$ git config branch.branchB.remote origin
$ git config branch.branchB.merge refs/heads/branchB
O puedes editar manualmente el .git/config
archivo para agregar información de seguimiento a esta rama:
[branch "branchB"]
remote = origin
merge = refs/heads/branchB
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>
Una ligera variación de las soluciones ya dadas aquí:
Cree una sucursal local basada en alguna otra sucursal (remota o local):
git checkout -b branchname
Empuje la rama local al repositorio remoto (publicar), pero hágala rastreable para
git pull
quegit push
funcione de inmediato.git push -u origin HEAD
Usar
HEAD
es 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
-u
opció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:
simplemente lo hago
git push -u origin localBranch:remoteBranchToBeCreated
sobre un proyecto ya clonado.
Git crea una nueva rama nombrada remoteBranchToBeCreated
en 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/localBranch
el origen.