Escenarios de uso común para operaciones de sucursales de Git

1. Eliminar ramas innecesarias

1. Ahora, en el proyecto my-pro, cree varias ramas nuevas para probar.

git checkout master # apunta HEAD a la rama maestra

git branch testdel #Crear una nueva rama bajo el punto maestro

git checkout testdel #point HEAD to testdel branch

#Modifique style.css aquí, por ejemplo, agregue un color de fondo background:#d8d8d8

git commit css/style.css -m'solo una confirmación de prueba' #Ejecutar una operación de confirmación en testdel

prueba de rama git de nuevo

maestro de pago de git

rama de git otra prueba

gitk --all #Usar gitk para visualizar el estado actual de la rama

Después de varias operaciones de creación y confirmación de ramas, nuestra rama se ha convertido en la estructura que se muestra en la siguiente figura:

2. Use el comando git branch -d [nombre de la rama] para eliminar una rama específica.

Yooye-2:my-pro yooye$ git branch -av #Ver el estado actual de la rama

anothertest dc7ecf7 deja que index.html vincule el archivo de estilo

change-border-color 413552e cambiar el color del borde de la caja

* maestro dc7ecf7 dejar que index.html vincule el archivo de estilo

testagain e1e471a solo una prueba

testdel e1e471a solo una prueba

Yooye-2:my-pro yooye$ git checkout master #Enter the master branch

Cambiado a la rama 'maestro'

Yooye-2:my-pro yooye$ git branch -d testagain #Use -d para eliminar una rama

error: la rama 'testagain' no está completamente fusionada.

Si está seguro de que desea eliminarlo, ejecute 'git branch -D testagain'. #Indíquenos que usemos -D para eliminar

Yooye-2:my-pro yooye$ git branch -D testagain #Use -D para intentar eliminar una rama nuevamente

Prueba de sucursal eliminada nuevamente (era e1e471a). #Eliminar con éxito

Yooye-2:my-pro yooye$ gitk --all #Ver el estado de la rama visual después de la eliminación

El estado después de eliminar el punto testagain es el siguiente:

 

 3. Cuando usamos git checkout para cambiar entre las ramas testdel y master, los archivos de código como style.css en el proyecto cambiarán en consecuencia. Si se elimina la rama testdel, se eliminarán todos los registros de operaciones de confirmación enviados en esta rama. Por lo tanto, debemos confirmar la versión antes de eliminar la rama.

 2. Modificar la descripción de la última confirmación

Usa el comando git commit --amend para modificar el texto descriptivo de la confirmación más reciente. El proceso de operación es el siguiente:

Yooye-2:my-pro yooye$ git checkout testdel #【1】Ingrese a la rama testdel

Cambiado a la rama 'testdel'

Yooye-2:my-pro yooye$ git log -1 #【2】Verifique el último registro de confirmación, tenga en cuenta que este es git log -[Número 1]

confirmar e1e471a5945ab83673bc56055e3455e9fbec8e61 (HEAD -> testdel)

Autor: <[email protected]>

Fecha: viernes 1 de marzo 10:26:49 2019 +0800

solo una prueba # [2-1] Este es el texto de descripción antes de la modificación

Yooye-2:my-pro yooye$ git commit --amend # [3] Ejecute el comando de modificación e ingrese el estado de modificación. Consulte el paso [4] a continuación para ver la operación detallada

Yooye-2:my-pro yooye$ git log -1 #【5】Verifique si la modificación es exitosa

cometer 1062fa43b85ad7111738d4eaee56436279768757 (HEAD -> testdel)

Autor: <[email protected]>

Fecha: viernes 1 de marzo 10:26:49 2019 +0800

solo una prueba y tuve que cambiar estas palabras 【5-1】texto de descripción modificado

Yooye-2:mi-pro yooye$

[4] Ejecute el comando de modificación git commit --amend, el método de modificación es el siguiente:

 

 3. Modifique la información de descripción de confirmación anterior

Use el comando git rebase -i [identificación única de la confirmación principal modificada] para ingresar a la operación de reorganización.

[Nota]: La confirmación de nivel principal se usa arriba para ingresar la operación de reorganización, y la operación es ingresar la confirmación en el nivel principal.

1. Debido a que se puede admitir una variedad de operaciones en el estado de rebase, aquí debemos cambiar el modo de operación de selección predeterminado frente a la confirmación que debe modificarse para reformular (es decir, el significado de modificación). Luego guarde y salga de la misma manera que en el segundo paso, e ingrese a la siguiente interfaz de operación.

2. En esta interfaz de operación, el contenido de la descripción del compromiso original se puede modificar, como se muestra en la primera línea de la figura a continuación. Luego continúe guardando y salga.

 

 3. Use git log --graph para ver los resultados modificados, como se muestra en la siguiente figura:

4. Combinar varias acciones de confirmación consecutivas

De acuerdo con los resultados de git log --graph en el paso anterior, se puede ver que en realidad hay tres confirmaciones arriba para mostrar el index.html de manera normal, por lo que podemos fusionar las otras tres confirmaciones excepto la operación Léame. .

1. Use el comando git rebase -i [la identificación única de la confirmación que primero creó el archivo Léame] para ingresar a la interfaz de operación. Combine estos tres compromisos en uno de ellos, luego guarde y salga al siguiente paso.

elegir 789f15c agregar un archivo index.html #[1] significa fusionar otras confirmaciones en esta confirmación

squash e7bf7b0 agregar archivo de estilo aaaaaaa # 【2】 fusionar

squash 4216faf let index.html enlazar el archivo de estilo #【3】merge

# Rebase 1bb42bc..4216faf en 1bb42bc (3 comandos)

#

# Comandos:

# p, elige <confirmar> = usar confirmar

# r, reformular <commit> = usar confirmación, pero editar el mensaje de confirmación

# e, edit <commit> = usa commit, pero deja de modificar

# s, squash <commit> = usar confirmación, pero combinar con la confirmación anterior

# f, fixup <commit> = como "squash", pero descarta el mensaje de registro de esta confirmación

# x, exec <comando> = ejecutar comando (el resto de la línea) usando shell

# d, suelta <commit> = elimina la confirmación

# l, label <label> = etiqueta HEAD actual con un nombre

# t, restablecer <etiqueta> = restablecer HEAD a una etiqueta

# m, fusionar [-C <confirmar> | -c <compromiso>] <etiqueta> [# <una línea>]

# . crear una confirmación de fusión utilizando la confirmación de fusión original

# . mensaje (o el oneline, si no se realizó la confirmación de combinación original)

# . especificado). Use -c <commit> para reformular el mensaje de confirmación.

#

# Estas líneas se pueden reordenar; se ejecutan de arriba hacia abajo.

# Si elimina una línea aquí, ESE COMPROMISO SE PERDERÁ.

# Sin embargo, si elimina todo, la reorganización se anulará.

#

#

# Tenga en cuenta que las confirmaciones vacías están comentadas

~

:wq!

2. Rellene el texto de descripción de esta fusión y conserve el texto de descripción de la confirmación original para su visualización posterior.

# Este es el primer mensaje de confirmación:

Estoy tratando de hacer una combinación, ¡Sí! #【1】El texto de descripción de esta operación de fusión

agregue un archivo index.html # [2-1] Texto de descripción de compromiso original reservado

# Este es el mensaje de confirmación #2:

agregue el archivo de estilo aaaaaaa # [2-2] Texto de descripción de compromiso original reservado

# Este es el mensaje de confirmación #3:

permita que index.html vincule el archivo de estilo # [2-3] Texto de descripción de compromiso original reservado

# Ingrese el mensaje de confirmación para sus cambios. Líneas que comienzan

# con '#' será ignorado y un mensaje vacío abortará la confirmación.

#

# Fecha: miércoles 27 de febrero 11:42:12 2019 +0800

#

# rebase interactivo en progreso; en 1bb42bc

# Últimos comandos realizados (3 comandos realizados):

# squash e7bf7b0 agregar archivo de estilo aaaaaaa

# squash 4216faf deja que index.html vincule el archivo de estilo

# No quedan comandos.

# Actualmente está reorganizando la rama 'anothertest' en '1bb42bc'.

#

# Cambios a realizar:

# nuevo archivo: css/style.css

# nuevo archivo: index.html

#

# archivos sin seguimiento:

#js/

#

:wq!

3. Use git log --graph para ver el estado de la versión fusionada.

5. Combinar confirmaciones discontinuas

1. Según el paso anterior, para demostrarlo, eliminamos todas las demás ramas de prueba y solo mantenemos la rama maestra original y tres confirmaciones relacionadas con index.html, style.css y readme.md.

Luego modificamos el contenido del archivo readme.md en my-pro y realizamos una operación de confirmación. Luego use el comando git log --graph para ver la lista de estado de confirmación actual.

 

 

2. Debido a que la primera y la última confirmación tienen que ver con los envíos de Léame, necesitamos fusionarlos. Antes de ejecutar git rebase -i [la confirmación del antepasado más bajo], recuerde copiar la identificación de la confirmación del antepasado (p. ej.: 1bb42bc) para uso futuro.

Después de ingresar a la ventana de operación, realice las operaciones como se muestra en el siguiente código para guardar y salir.

pick 1bb42bc8 #[1] Esta oración fue agregada recientemente por nosotros, que es para fusionar la operación de confirmación de otra operación Léame

squash 702dcbf Soy el verdadero archivo readme.md # [2] Esta línea estaba originalmente en la parte inferior, la movimos a esta y cambiamos la selección a squash

elige 2b2e247 Estoy tratando de hacer una combinación, ¡Sí!

# Rebase 1bb42bc..702dcbf en 1bb42bc (2 comandos)

#

# Comandos: había muchas indicaciones de comando aquí, que se eliminaron

# Estas líneas se pueden reordenar; se ejecutan de arriba hacia abajo.

# Si elimina una línea aquí, ESE COMPROMISO SE PERDERÁ.

# Sin embargo, si elimina todo, la reorganización se anulará.

#

:wq!

3. Si la rama de recordatorio no es continua después de guardar y salir, podemos usar git rebase --continuar para continuar con el siguiente paso.

6. Compara la diferencia entre el área de almacenamiento temporal y los archivos contenidos en HEAD

1. Modifique el contenido de index.html en el almacén my-pro.

2. Realice una operación de adición de git.

3. Use git diff -cached para ver la diferencia entre el área de almacenamiento temporal y los archivos contenidos en HEAD.

Yooye-2:my-pro yooye$ git diff --cached #【1】Ejecutar comando de comparación

diferencia --git a/index.html b/index.html

índice 084901f..ec530c2 100644

--- a/index.html

+++ b/index.html

@@ -5,7 +5,7 @@

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<enlace rel="hoja de estilo" href="css/estilo.css">

- <title>Documento</title> #【2-1】El contenido antiguo señalado por HEAD antes de ningún cambio

+ <title>Learn Git</title> #【2-2】El contenido agregado al área de almacenamiento temporal a través de git add después de la modificación

</cabeza>

<cuerpo>

<div clase="caja"></div>

7. Compare la diferencia entre los archivos contenidos en el área de trabajo y el área de almacenamiento temporal

1. Según el paso anterior, ajustemos el archivo style.css (como agregar un fondo) y luego no ejecutemos la operación git add. En este momento, los cambios en el archivo style.css que acabamos de editar pertenecen a el espacio de trabajo

2. Ejecute el comando git diff para ver las diferencias entre el espacio de trabajo y los archivos del área de ensayo enviados anteriormente.

Yooye-2:mi-pro yooye$ git diff

diferencia --git a/css/style.css b/css/style.css

índice 20ce14c..488853c 100644

--- a/css/estilo.css

+++ b/css/estilo.css

@@ -2,4 +2,5 @@

ancho: 100px;

altura: 100px;

borde: 1px rojo sólido;

+ fondo: rosa;

}

\ Sin nueva línea al final del archivo

Yooye-2:mi-pro yooye$

3. Si se han modificado varios archivos antes de enviarlos al área de almacenamiento temporal, pero solo queremos ver los cambios de un determinado archivo, como readme.md, podemos usar el siguiente comando:

git diff -- readme.md

8. Restaure el contenido en el área de almacenamiento temporal para que sea igual que HEAD

En el escenario de uso, modificamos index.html en el sexto paso y lo enviamos al área de almacenamiento temporal a través de git add.Si nos arrepentimos en este momento, podemos usar el comando git reset HEAD para restaurarlo al mismo que CABEZA. El proceso de prueba es el siguiente:

Yooye-2:my-pro yooye$ git status # [1] Verifique el estado de confirmación antes de restaurar

En maestro de rama

Cambios a realizar:

(use "git reset HEAD <archivo>..." para quitar el escenario)

modificado: index.html #【2-1】Ya en el área de almacenamiento temporal

Cambios no organizados para la confirmación:

(use "git add <file>..." para actualizar lo que se confirmará)

(use "git checkout -- <archivo>..." para descartar cambios en el directorio de trabajo)

modificado: css/style.css #【2-2】No en el área de almacenamiento temporal

modificado: readme.md

Yooye-2:my-pro yooye$ git reset HEAD #【3】Restaura el contenido del área de almacenamiento temporal

Cambios no preparados después del reinicio:

M css/estilo.css

índice M.html

M readme.md

Yooye-2: mi-pro yooye$ git estado

En maestro de rama

Cambios no organizados para la confirmación:

(use "git add <file>..." para actualizar lo que se confirmará)

(use "git checkout -- <archivo>..." para descartar cambios en el directorio de trabajo)

modificado: css/style.css #【4】No en el área de almacenamiento temporal

modificado: index.html

modificado: readme.md

no se agregaron cambios para confirmar (use "git add" y/o "git commit -a")

 

Supongo que te gusta

Origin blog.csdn.net/longz_org_cn/article/details/130010863
Recomendado
Clasificación