git se da cuenta de la cancelación de la fusión y borra los archivos locales fusionados

La sección del tutorial de git presenta cómo borrar las


recomendaciones de fusión : tutorial de git
1. Ve directo al grano.
Solución
1: git reset --- fusiona cualquier cadena hash enviada antes de fusionar.
Nota 1:

Si no hay ningún cambio en el espacio de trabajo después de la fusionar, utilice este método audazmente.
Si el espacio de trabajo se cambia después de la combinación, este método restablecerá todos los cambios en el espacio de trabajo, utilícelo con precaución. Sin embargo, se mantendrán los cambios en el área de preparación.
Nota 2: Cuando MERGE_HEAD está en la confirmación actual (es decir, cuando se encuentra un error o conflicto al fusionar ramas, habrá "| MERGING" al lado de la rama) git merge --abort es el mismo que este método.
Método 2:

1

2

3

4

5

Cualquier cadena hash enviada antes de git reset fusionar

git clean -n # 预 Delete

# Agregar archivos eliminados previamente que no desea eliminar a .gitignore

git agregar .gitignore

git clean -f

2. Construcción
Convención de entorno : uso de la URL del almacén remoto URL remota en lugar de
1, desarrollador de simulación número uno

1

2

3

4

5

6

7

8

9

10

mkdir gitTest #Agregar una nueva carpeta gitTest

cd gitTest

git init

git remote agregar origin "url remota"

echo "Es demasiado largo para cubrirlo, y el sustento de la gente es muy difícil."> Lyrics.txt # Newlyrics.txt y escriba it Ingrese texto

git agregue lyrics.txt #Agregue lyrics.txt al área de almacenamiento temporal

git commit -m "lyrics.txt from user 1"

git push origin master

git checkout -b dev

git push origin dev: dev

2. Simular número de desarrollador dos

1

2

3

4

5

6

7

8

mkdir gitTest2

cd gitTest2

git clone "url remota"

cd gitTest

echo "No me hagas sufrir"> Suffer.txt

git add Suffer.txt

git commit -m "Suffer.txt from user2"

git push origin dev

3. Simular el desarrollador n. °

1 1

2

3

4

5

git checkout master

git merge origin / dev

# Fusionar la rama dev remota echo "Yu Shouhao repara el escorpión que se va a encadenar y lo reemplaza por la noche". >> lyrics.txt # Modificar el archivo lyrics.txt

echo "Yu Shouhao Xiuyi tomó la iniciativa y lo reemplazó como un tonto."> Test.txt #New test y escribir contenido

git add test.txt #Add test.txt al área de almacenamiento temporal

3.
El Situación que enfrenta el desarrollador No. 1 de revocar la fusión : el maestro local fusiona el contenido del desarrollador remoto y hay un archivo Suffer.txt adicional localmente. Pero se encuentra que la rama incorrecta está combinada, y la operación de fusión ahora necesita deshacerse. Pero el archivo local ha cambiado de nuevo.

Ver el archivo local actual ls



Ver la diferencia entre el área de trabajo y la biblioteca de versiones git diff HEAD



Ver el historial de envíos git log --oneline --graph


Método de verificación uno
Retirar merge git reset --merge 7f811bf o ejecutar git reset --merge HEAD ^
HEAD ^ this En el ejemplo, es 7f811bf. El historial de envíos anterior muestra que 7f811bf es la cadena hash enviada antes de la fusión.

Ver el archivo local ls y ver el contenido del archivo.



Ver el registro de envío de nuevo git log - -en línea -



vista gráfica

La diferencia entre el espacio de trabajo y el área de prueba La diferencia entre el
espacio de trabajo de git diff y la biblioteca de versiones La diferencia entre el
área de prueba de git diff HEAD y la biblioteca de versiones El


resultado final de git diff --cached : Los cambios del archivo local se han restablecido (es decir, el desarrollador número uno se agregó después de la fusión, aunque Yu es bueno para repararlo y reemplazarlo con banquet, fue eliminado), pero todavía hay contenido en el área de almacenamiento temporal. Por lo tanto, si hay cambios en el espacio de trabajo después de la fusión, utilícelo con precaución.

Método de verificación 2:
Retirar fusión git reset 7f811bf

Verifique el archivo local actual



nuevamente. Verifique el registro de envío nuevamente. Verifique el registro de envío. Git log --oneline Resultado de la



fase de gráfico : es obvio que la fusión se ha revertido, pero los archivos fusionados localmente siguen ahí. También elimine el archivo combinado redundante (Suffer.txt).

Antes de eliminar, puedes echar un vistazo a los contenidos que se eliminarán cuando ejecutes la operación de eliminación (pre-delete). Git clean -n


Nota: Aquí vemos que también se eliminará el archivo original local test.txt, que no es lo que esperaba. Solo espero que los archivos meger se puedan eliminar.

Agregue el archivo test.txt a .gitignore y realice la eliminación previa

1

2

3

echo test.txt> .gitignore

git agregue .gitignore

git clean -n



fase resultado: puede ver que los archivos que se eliminarán son solo los archivos redundantes de fusión.

Realice la operación de eliminación git clean -f
resultado final

Supongo que te gusta

Origin blog.csdn.net/hdl17822307857/article/details/112798648
Recomendado
Clasificación