Hice un git stash pop
y terminé con conflictos de fusión. Eliminé los archivos del sistema de archivos e hice lo git checkout
que se muestra a continuación, pero cree que los archivos aún no están fusionados. Luego intenté reemplazar los archivos y hacer un resultado git checkout
nuevo y el mismo. Intenté forzarlo con la -f
bandera. ¡Cualquier ayuda sería apreciada!
chirag-patels-macbook-pro:haloror patelc75$ git status
app/views/layouts/_choose_patient.html.erb: needs merge
app/views/layouts/_links.html.erb: needs merge
# On branch prod-temp
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: db/schema.rb
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# unmerged: app/views/layouts/_choose_patient.html.erb
# unmerged: app/views/layouts/_links.html.erb
chirag-patels-macbook-pro:haloror patelc75$ git checkout app/views/layouts/_choose_patient.html.erb
error: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
chirag-patels-macbook-pro:haloror patelc75$ git checkout -f app/views/layouts/_choose_patient.html.erb
warning: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
git
git-stash
git-checkout
Chirag Patel
fuente
fuente
git stash apply/pop
debería ser más fácil con Git 2,5 (Q2 2015), ya que el árbol de trabajo ahora debe estar limpia: véase mi respuesta a continuaciónRespuestas:
Ver man git merge ( CÓMO RESOLVER CONFLICTOS ):
Y bajo VERDADERO FUSIÓN (para ver a qué se refiere 2. y 3.):
Por lo tanto: utilícelo
git reset --hard
si desea eliminar los cambios de alijo de su árbol de trabajo, ogit reset
si solo desea limpiar el índice y dejar que los conflictos en su árbol de trabajo se fusionen a mano.En man git stash ( OPTIONS, pop ) puedes leer además:
fuente
Me sucedió algo similar. Todavía no quería organizar los archivos, así que los agregué
git add
y luego lo hicegit reset
. Básicamente, esto solo agregó y luego eliminó mis cambios pero eliminó los caminos no fusionados.fuente
reset --hard
porque no sobrescribe sus archivos (excepto los que tienen problemas de fusión). ¡Gracias!add
muestra el contenido del árbol de trabajo al índice? No creo entender por qué su respuesta funciona a partir de la descripción.git add
los presenta perogit reset
, lo que hago inmediatamente después, los desestabiliza. Esencialmente, despeja los caminos no fusionados y me devuelve a mi árbol de trabajo normal fingiendo git.git add
si vas a hacerlogit reset
. Elgit reset
efectivamente "deshace" elgit add
.git reset
(--mixed
<- predeterminado) efectivamente no toca el directorio de trabajo, por lo que exactamente lo que estaba en su directorio de trabajo, fusionar conflictos y todo, se deja solo. Sin embargo, el índice (y técnicamente el encabezado de la rama) se restablece (sin una referencia a la que se restablecenHEAD
, lo que probablemente significa que no hay cambios para el encabezado de la rama, y deshace efectivamente cualquiergit add
hecho en el índice, así como también borra el estado de las rutas no fusionadas) .git reset
ygit stash drop
funciona bien. Hace logit stash pop
que hubiera hecho sin conflictos. Parece que nogit add
es necesario; aunque puede ser útil, tiene muchos archivos con conflictos. A medida que se resuelven , se pueden agregar y realizargit status
un seguimiento de ellos.Si, como yo, lo que generalmente desea es sobrescribir el contenido del directorio de trabajo con el de los archivos escondidos, y aún tiene un conflicto, entonces lo que desea es resolver el conflicto
git checkout --theirs -- .
desde la raíz.Después de eso, puede
git reset
traer todos los cambios del índice al directorio de trabajo, ya que aparentemente en caso de conflicto, los cambios en los archivos no conflictivos permanecen en el índice.También es posible que desee ejecutar
git stash drop [<stash name>]
después, para deshacerse del alijo, porquegit stash pop
no lo elimina en caso de conflictos.fuente
Tenga en cuenta que
Git 2.5 (Q2 2015)un futuro Git podría intentar hacer ese escenario imposible.Ver commit ed178ef por Jeff King (
peff
), 22 de abril de 2015.(Fusionada por Junio C Hamano -
gitster
- en commit 05c3967 , 19 de mayo de 2015)Nota: Esto ha sido revertido. Ver abajo .
Problema
En otras palabras:
Solución
Ver commit 1937610 (15 de junio de 2015), y commit ed178ef (22 de abril de 2015) por Jeff King (
peff
) .(Fusionada por Junio C Hamano -
gitster
- en commit bfb539b , 24 jun 2015)fuente