Si encuentras alguna parte que no entiendes puedes dejarnos un comentario y haremos todo lo necesario de ayudarte tan rápido como podamos.
Solución:
Si another_branch
ya existe localmente y no estás en esta rama, entonces git checkout another_branch
cambia a la rama.
Si another_branch
no existe pero origin/another_branch
hace, entonces git checkout another_branch
es equivalente a git checkout -b another_branch origin/another_branch; git branch -u origin/another_branch
. Eso es para crear another_branch
desde origin/another_branch
y establecer origin/another_branch
como el río arriba de another_branch
.
Si ninguno existe, git checkout another_branch
devuelve error.
git checkout origin another_branch
devuelve error en la mayoría de los casos. Si origin
es una revisión y another_branch
es un archivo, luego verifica el archivo de esa revisión, pero lo más probable es que eso no sea lo que esperabas. origin
se utiliza principalmente en git fetch
, git pull
y git push
como remoto, un alias de la URL del repositorio remoto.
git checkout origin/another_branch
tiene éxito si origin/another_branch
existe. Conduce a estar en estado HEAD separado, no en ninguna rama. Si realiza nuevas confirmaciones, las nuevas confirmaciones no son accesibles desde ninguna rama existente y ninguna de las ramas se actualizará.
ACTUALIZAR:
Como se ha lanzado 2.23.0, con él también podemos usar git switch
para crear y cambiar de rama.
Si foo
existe, intente cambiar a foo
:
git switch foo
Si foo
no existe y origin/foo
existe, intenta crear foo
desde origin/foo
y luego cambia a foo
:
git switch -c foo origin/foo
# or simply
git switch foo
De manera más general, si foo
no existe, intenta crear foo
desde una referencia o confirmación conocida y luego cambia a foo
:
git switch -c foo
git switch -c foo
Si mantenemos un repositorio en Gitlab y Github al mismo tiempo, el repositorio local puede tener dos remotos, por ejemplo, origin
para Gitlab y github
para Github. En este caso, el repositorio tiene origin/foo
y github/foo
. git switch foo
se quejará fatal: invalid reference: foo
, porque no se sabe de qué ref, origin/foo
o github/foo
, crear foo
. Necesitamos especificarlo con git switch -c foo origin/foo
o git switch -c foo github/foo
según la necesidad. Si queremos crear ramas desde ambas ramas remotas, es mejor usar nombres distintivos para las nuevas ramas:
git switch -c gitlab_foo origin/foo
git switch -c github_foo github/foo
Si foo
existe, intenta recrear / forzar-crear foo
desde (o restablecer foo
a) una referencia conocida o un compromiso y luego cambiar a foo
:
git switch -C foo
git switch -C foo
que son equivalentes a:
git switch foo
git reset [|] --hard
Intente cambiar a un HEAD separado de una referencia conocida o cometer:
git switch -d
git switch -d
Si solo desea crear una rama pero no cambiar a ella, use git branch
en lugar de. Intente crear una rama a partir de una referencia o confirmación conocida:
git branch foo
git branch foo
Cambiando a otra rama en git. Respuesta sencilla
git-checkout: cambia de rama o restaura archivos de árbol de trabajo
git fetch origin <----this will fetch the branch
git checkout branch_name <--- Switching the branch
Antes de cambiar de rama, asegúrese de no tener ningún archivo modificado, en ese caso, puede confirmar los cambios o puede guardarlo.
[git checkout "branch_name"
]
es otra forma de decir:
[git checkout -b branch_name origin/branch_name
]
en caso de que exista "branch_name" solo de forma remota.
[git checkout -b branch_name origin/branch_name
] es útil en caso de que tenga varios controles remotos.
Con respecto a [git checkout origin 'another_branch'
] No estoy seguro de que esto sea posible, AFAK puede hacer esto usando el comando "buscar" - [git fetch origin 'another_branch'
]
valoraciones y reseñas
Si para ti ha sido de ayuda este post, sería de mucha ayuda si lo compartieras con el resto seniors de este modo nos ayudas a dar difusión a nuestro contenido.