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
git se da cuenta de la cancelación de la fusión y borra los archivos locales fusionados
Supongo que te gusta
Origin blog.csdn.net/hdl17822307857/article/details/112798648
Recomendado
Clasificación