volver ver remota ramas rama ejemplo crear cambiar anterior git branch git-branch

ver - Rama de un commit anterior usando Git



ver ramas git (13)

Si tengo n confirmaciones, ¿cómo puedo pasar de la confirmación n-3?

Puedo ver el hash de cada cometer.


Esto es lo que hice:

C:/Users/[path]/build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b Switched to a new branch ''responsivenavigation'' C:/Users/jaimemontoya/Dropbox/CuponClub/androidapp/build>git branch master * responsivenavigation

En este caso, 8a75b001096536b3216022484af3026aa9c7bb5b era un antiguo compromiso que pertenecía a la rama master .


La magia se puede hacer por git reset .

  1. Cree una nueva rama y cámbiela (para que todas sus últimas confirmaciones se almacenen aquí)

    git checkout -b your_new_branch

  2. Vuelve a tu rama de trabajo anterior (asume que es maestro)

    git checkout master

  3. Eliminar las últimas x confirmaciones, mantener limpio maestro

    git reset --hard HEAD~x # in your case, x = 3

A partir de este momento, todas las últimas x confirmaciones están solo en la nueva rama, ya no en su rama de trabajo anterior (maestra).


Para hacer esto en Eclipse:

  • Vaya a la perspectiva "Exploración del repositorio Git".
  • Expanda "Etiquetas" y elija la confirmación desde la que desea crear la rama.
  • Haga clic derecho en la confirmación y seleccione "Crear rama".
  • Proporcionar un nombre de rama.

Creará una sucursal local para usted. Luego, cada vez que presione sus cambios, su rama se enviará al servidor remoto.


Para hacer esto en github.com:

  1. Ve a tu proyecto.
  2. Haga clic en el botón "Cometer".
  3. Haga clic en <> ("Examinar el repositorio en este punto del historial") en la confirmación de la que desea bifurcar.
  4. Haga clic en el "árbol: xxxxxx" arriba en la parte superior izquierda. Justo debajo de la barra de estadísticas de idioma, obtendrás la opción de "Buscar o crear una rama" (simplemente escribe un nuevo nombre de rama allí)

Pude hacerlo así:

git branch new_branch_name `git log -n 1 --skip 3 --format=%H`

Donde debe ingresar el valor de omisión. 0 es el último, 1 es el anterior, 2 es la confirmación anterior, etc.


Puedes crear la rama a través de un hash:

git branch branchname <sha1-of-commit>

O utilizando una referencia simbólica:

git branch branchname HEAD~3

Para pagar la rama al crearla, use

git checkout -b branchname <sha1-of-commit or HEAD~3>


Puedes hacerlo en Stash.

  1. Haga clic en el compromiso
  2. En la parte superior derecha de la pantalla, haga clic en "Etiquetar este compromiso"
  3. A continuación, puede crear la nueva rama a partir de la etiqueta que acaba de crear.

Si no está seguro de qué compromiso desea bifurcar por adelantado, puede verificar los compromisos y examinar su código (ver fuente, compilación, prueba) por

git checkout <sha1-of-commit>

Una vez que encuentre la confirmación de la que desea derivar, puede hacerlo desde la confirmación (es decir, sin volver al maestro primero) simplemente creando una rama de la forma habitual:

git checkout -b <branch_name>


Una forma rápida de hacerlo en tu repo de Github sería la siguiente:

  • Encuentra el commit específico de tu sucursal.
  • Junto a la ID de SHA, haga clic en "Examinar el repositorio en este punto del historial"
  • Aquí puedes crear una nueva rama desde este commit.

Una gran pregunta relacionada es: ¿Cómo diablos lo solucionas usando la opción --help de git? Intentemos esto:

git branch --help

Vemos esta salida:

NAME git-branch - List, create, or delete branches SYNOPSIS git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>...] git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] git branch --unset-upstream [<branchname>] git branch (-m | -M) [<oldbranch>] <newbranch> git branch (-d | -D) [-r] <branchname>... git branch --edit-description [<branchname>]

Gobbledegook.

Busque en el texto posterior la palabra "cometer". Encontramos esto:

<start-point> The new branch head will point to this commit. It may be given as a branch name, a commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.

¡Estamos llegando a alguna parte!

Ahora, enfócate en esta línea del libro engullido:

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]

Condense que a esto:

git branch <branchname> [<start-point>]

Y hecho.


Para los usuarios de Git GUI, puede visualizar todo el historial (si es necesario) y luego hacer clic con el botón derecho en la confirmación de la que desea bifurcar e ingresar el nombre de la rama.


Ir a un commit particular de un repositorio git

A veces, al trabajar en un repositorio de git, desea volver a un compromiso específico (revisión) para tener una instantánea de su proyecto en un momento específico. Para hacerlo, todo lo que necesita es el hash SHA-1 de la confirmación, que puede encontrar fácilmente consultando el registro con el comando:

git log --abbrev-commit --pretty=oneline

que le dará una lista compacta de todas las confirmaciones y la versión corta del hash SHA-1.

Ahora que conoce el hash de la confirmación a la que desea ir, puede usar uno de los siguientes 2 comandos:

git checkout HASH

o

git reset --hard HASH

revisa

git checkout <commit> <paths>

Le dice a git que reemplace el estado actual de las rutas con su estado en la confirmación dada. Las rutas pueden ser archivos o directorios.

Si no se da ninguna rama, git asume el compromiso HEAD.

git checkout <path> // restores path from your last commit. It is a ''filesystem-undo''.

Si no se proporciona una ruta, git mueve HEAD a la confirmación dada (cambiando así la confirmación en la que está sentado y trabajando).

git checkout branch //means switching branches.

Reiniciar

git reset <commit> //re-sets the current pointer to the given commit.

Si está en una rama (normalmente debería estar), HEAD y esta rama se moverán para confirmar.

Si se encuentra en estado HEAD desconectado, git reset solo mueve HEAD . Para restablecer una rama, primero echa un vistazo.

Si quisiera saber más sobre la diferencia entre el reinicio de git y el checkout de git, recomendaría leer el blog oficial de git .


git checkout -b <branch-name> <sha1-of-commit>