Pregunta Sucursal de una confirmación previa usando Git


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

Puedo ver el hash de cada compromiso.


1270
2018-05-12 07:21


origen


Respuestas:


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

git branch branchname <sha1-of-commit>

O mediante el uso de una referencia simbólica:

git branch branchname HEAD~3

Para pagar la sucursal al crearla, use

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

1775
2018-05-12 07:24



Para hacer esto en github.com:

  1. Ve a tu proyecto
  2. Haga clic en "Commits".
  3. Clickea en el <> ("Buscar en el repositorio en este punto del historial") en la confirmación desde la que desea realizar la bifurcación.
  4. Haga clic en el "árbol: xxxxxx" arriba en la esquina superior izquierda. Justo debajo de la barra de estadísticas del idioma, tendrá la opción de "Buscar o crear una sucursal" (solo escriba una nueva rama allí) Branch from previous commit

176
2017-08-08 22:08



Si no está seguro de qué compromiso desea realizar una bifurcación por adelantado, puede verificar que se haya confirmado y examinar su código (ver fuente, compilación, prueba) por

git checkout <sha1-of-commit>

una vez que encuentre la confirmación desde la que desea realizar la bifurcación, puede hacerlo desde dentro de la confirmación (es decir, sin volver primero al maestro) simplemente creando una sucursal de la manera habitual:

git checkout -b <branch_name>

54
2018-02-10 16:43



La magia puede hacerse por git reset.

  1. Crea una nueva rama y cambia a ella (para que todos tus últimos commits se almacenen aquí)

    git checkout -b your_new_branch

  2. Vuelva a su rama de trabajo anterior (suponga que es maestro)

    git checkout master

  3. Elimine las últimas x confirmaciones, mantenga el maestro limpio

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

A partir de este momento, las últimas x confirmaciones se encuentran solo en la nueva rama, no en la rama de trabajo anterior (principal).


50
2017-08-03 09:04



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

17
2017-07-11 07:11



Una forma rápida de hacerlo en su repositorio Github sería el siguiente:

  • Encuentra la confirmación específica de tu sucursal
  • Junto a la identificación de SHA, haga clic en 'Examinar el repositorio en este punto del historial'
  • Aquí puedes crear una nueva rama desde este compromiso enter image description here 

6
2018-01-14 17:51



Puedes hacerlo en Stash.

  1. Haga clic en el compromiso
  2. En la parte superior derecha de la pantalla, haz clic en "Etiquetar esta confirmación"
  3. Luego puedes crear la nueva rama desde la etiqueta que acabas de crear.

4
2018-01-18 17:20



Para hacer esto en Eclipse:

  • Vaya a la perspectiva de "Exploración de repositorio de Git".
  • Expanda "Etiquetas" y elija la confirmación a partir de la cual desea crear una bifurcación.
  • Haga clic derecho en la confirmación y elija "Crear rama".
  • Proporcione un nombre de rama.

Creará una sucursal local para ti. Luego, cada vez que presione sus cambios, su rama será empujada al servidor remoto.


4
2018-05-17 12:03



Una gran pregunta relacionada es: ¿Cómo diablos se da cuenta usando el --help opción 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 siguiente la palabra "commit". 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 algún lado!

Ahora, concéntrese en esta línea del galimatías:

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

Condensar eso a esto:

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

Y hecho.


3
2017-07-19 16:35