git agregar rama remota

139

Quiero agregar un control remoto y una rama de ese control remoto.

Lo hice git remote add <newname> <url>, luego lo hice git fetch --allpero git branch -ano muestra ninguna rama del control remoto. Mi .git / config muestra el control remoto agregado.

¿Por favor, puede alguien ayudarme?

Rai
fuente
2
¿Qué ocurre cuando git fetch remote branch:branch && git co branch?
Samy Dindane

Respuestas:

280

No estoy seguro de si está intentando crear una sucursal remota desde una sucursal local o viceversa, por lo que describí ambos escenarios y proporcioné información sobre la fusión de las sucursales remotas y locales.

Crear un control remoto llamado "github":

git remote add github git://github.com/jdoe/coolapp.git
git fetch github

Listar todas las ramas remotas:

git branch -r
  github/gh-pages
  github/master
  github/next
  github/pu

Cree una nueva rama local (prueba) a partir de la rama remota de un github (pu):

git branch test github/pu
git checkout test

Combine los cambios de la rama remota (pu) de github con la rama local (prueba):

git fetch github
git checkout test
git merge github/pu

Actualice la rama remota (pu) de github desde una rama local (prueba):

git push github test:pu

La creación de una nueva rama en un control remoto utiliza la misma sintaxis que la actualización de una rama remota. Por ejemplo, cree una nueva rama remota (beta) en github desde la rama local (prueba):

git push github test:beta

Eliminar la rama remota (pu) de github:

git push github :pu
David M. Syzdek
fuente
¿Hay alguna manera de crear la rama local sin especificar el nombre, de modo que tome automáticamente el mismo nombre que la rama remota?
Dubslow
@Dubslow git checkout --track github/pu, mira aquí
Hinrich
25

Puede verificar si tiene su configuración remota correcta y si tiene los permisos adecuados con

git ls-remote origin

si llamaste a tu remoto "origen". Si recibe un error, probablemente no tenga su seguridad configurada correctamente, como cargar su clave pública a github, por ejemplo. Si las cosas están configuradas correctamente, obtendrá una lista de las referencias remotas. Ahora

git fetch origin

funcionará salvo cualquier otro problema como un cable de red desconectado.

Una vez que haya hecho eso, puede obtener cualquier rama que desee que el comando anterior enumere con

git checkout some-branch

esto creará una rama local con el mismo nombre que la rama remota y la verificará.

Adam Dymitruk
fuente
6

Probé lo que sugirió @Samy Dindane en el comentario sobre el OP.

Creo que funciona, intenta

git fetch <remote_name> <remote_branch>:<local_branch>
git checkout <local_branch>

Aquí hay un ejemplo para un repositorio remoto ficticio llamado foocon una rama llamada bardonde creo una rama local que barrastrea el control remoto:

git fetch foo bar:bar
git checkout bar
Jason
fuente
5

Aquí está el proceso completo para crear un repositorio local y enviar los cambios a una nueva sucursal remota

  1. Creación de repositorio local: -

    Inicialmente, el usuario puede haber creado el repositorio git local.

    $ git init : - Esto hará que la carpeta local sea el repositorio de Git,

  2. Enlace la rama remota : -

    Ahora el desafío es asociar el repositorio local de git con la rama maestra remota .

    $ git remote add RepoName RepoURL

    uso: git remote add []

  3. Probar el control remoto

    $ git remote show ---> Mostrar el nombre remoto

    $ git remote -v ---> Mostrar las ramas remotas

  4. Ahora presione al control remoto

    $git add . ----> Agregue todos los archivos y carpetas como git staged '

    $git commit -m "Your Commit Message" - - -> Confirmar el mensaje

    $git push - - - -> Empuje los cambios hacia arriba

Pavana
fuente
Estas son solo las instrucciones para el caso general de usar git. No veo nada en esta respuesta específica a la pregunta que se hace.
Hack-R
2

Si la rama remota ya existe, entonces puede (probablemente) salirse con la suya.

git checkout branch_name

y git se configurará automáticamente para rastrear la rama remota con el mismo nombre en origen.

Sam Murphy
fuente