2012-01-17 21 views
11

estoy trabajando en un proyecto y he creado un repositorio con una rama master. Alguien que está trabajando en él agregó una rama llamada new-branch - sus cambios de código se encuentran en esta rama.rama principal es visible después de clonar un repositorio git

Sin embargo, cuando clonar el repositorio:

$ git clone [email protected]:me/my-repo.git 

que puede clonar con éxito, pero sólo muestra la rama master. No sé cómo puedo ver/obtener el new-branch.

¿Cómo voy a tirar de esta rama a mi repositorio?

+0

Sólo para que conste - 'tirar = clone'. En 'git' estos son dos conceptos muy diferentes. – twalberg

Respuesta

25

Al clonar un repositorio, todas las ramas remotas se crean como "ramas de seguimiento remoto" en su repositorio. Estos no se muestran por defecto, pero se puede ver estos con:

git branch -a 

Si lo hace un git checkout new-branch, Git se encuentra la rama de seguimiento remoto del mismo nombre, crear automáticamente una nueva rama local de la misma comprometerse y cambiar a la nueva sucursal local.

para el trabajo futuro, el comando git fetch actualizará todas las ramas de seguimiento remoto con su más reciente confirmación desde el mando a distancia.

+0

no sabía que funcionaba - pensé que necesita el -b en la salida para crear una nueva rama –

+0

@Adrian Cornish: este comportamiento DWIM ha estado presente desde Git 1.6.6, introducido en [70c9ac2f] (https://github.com/git/git/commit/70c9ac2f1999b7e0c17a864235537cffe29dfea4) –

+0

¿Qué sucede si estoy desconectado? "ramas de rastreo remoto" parece que no están físicamente presentes en el repositorio clonado. ¿Git checkout funcionaría si acabo de encontrarlo a través de git branch -a en un estado desconectado? ¿Podría git branch-enumerar la rama en ese estado en absoluto? – timmkrause

Cuestiones relacionadas