git-branch branch crear - Rama de un commit anterior usando Git





6 Answers

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í)
volver ramas ejemplo

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

Puedo ver el hash de cada cometer.




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).




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.



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.




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.




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 .




Related