2012-08-02 26 views
14

corro:git checkout otra rama

git checkout mygithub/master 

pero por alguna razón, corriendo 'git status' muestra "no está actualmente en cualquiera de las ramas". Duración:

git checkout master 

y luego git status, dice que estoy ahora en maestro rama. Ahora quiero cambiar a otra rama. Ejecutando git checkout anotherbranch funciona, pero git status dice que todavía estoy en la rama 'master'. ¿Qué estoy haciendo mal?

+0

¿'git checkout anotherbranch' produce alguna salida? – poke

+0

No muestra salida, no hay error. – NoBugs

Respuesta

18

mygithub/master es una sucursal remota. Para crear una sucursal local basada en esa sucursal remota, debe usar git checkout -b mymaster mygithub/master. Git intenta hacer esto fácil para usted: si escribe git checkout branchname, y el nombre de rama solo existe en un control remoto, pero no localmente, Git configurará automáticamente una rama local con <remote>/branchname siendo su padre.

+0

Entonces, ¿por qué git checkout branchname nunca cambia a esto? Branch existe en github, solo quiero fusionar los cambios maestros en él. – NoBugs

+0

@NoBugs: 'git checkout -b remotemaster mygithub/master' debe crear una nueva rama de' mygithub/master' y cambiar a ella. – knittl

+0

'git checkout -b otherbranch mygithub/otherbranch' funciona, pero' git merge mygithub/master' quiere 'adelantar' y borrar archivos del non-master, que quiero conservar. – NoBugs

9

Si desea cambiar a otra rama a continuación, ejecute este comando:

git checkout branch name 

Si desea eliminar una rama a continuación, ejecute este comando:

git branch -D branch name 

Si desea crear una nueva sucursal luego ejecuta este comando:

git checkout -b branch 
Cuestiones relacionadas