Error de fusión de GIT "confirmar no es posible porque tiene archivos no fusionados"


172

así que olvidé tirar de mi código antes de editarlo y luego, cuando cometí el nuevo código y traté de presionar, obtuve el error push no es posible, en ese momento hice un "git pull" que resaltó algunos archivos con conflicto. Eliminé los conflictos pero no sé qué hacer desde aquí ...

Intenté git commitnuevamente pero dice "confirmar no es posible porque tienes archivos no fusionados"

Respuestas:


245

Si ha solucionado los conflictos con los que necesita agregar los archivos al escenario git add [filename], entonces confirme normalmente.


2
¿Qué pasa si esos son los archivos en los que no he estado trabajando? ¿Debería entonces agregarlos? ¿Cuál es la mejor manera de lidiar con eso?
R11G

1
Tuve que hacer esto para un archivo que se eliminó en una rama que estaba fusionando en la rama actual. Git lo marcó como un conflicto, por lo que tuve que eliminar el archivo localmente git add the_filepara confirmar la fusión.
Brendon Muir

¿Cómo encontrar la lista de conflictos?
polina-c

77
git statusle mostrará los archivos que tienen los conflictos
jonnystoten

@jonnystoten gracias por tu comentario! Usé git statusy encontré un archivo que decía both deleted. La interfaz de usuario de WebStorm no mostró el problema, solo dijo que no podía realizar una fusión. ¡Resuelto!
Yuri Predborski

52

Necesitas hacer dos cosas. Primero agregue los cambios con

git add .
git stash  

git checkout <some branch>

Debería resolver su problema como me lo resolvió.


No se requiere solo git add. sería suficiente
Rais Iqbal

3
También esto es un peso pesado si no tienes intención de git addtodos los archivos de trabajo
courtsimas

11

Puede usar git stashpara guardar el repositorio actual antes de realizar la confirmación que desea realizar (después de fusionar los cambios del repositorio ascendente con git stash pop). Tuve que hacer esto ayer cuando tuve el mismo problema.


2

Este error se produce cuando resuelve los conflictos, pero el archivo aún debe agregarse en el área del escenario. git add. Lo resolvería. Luego, intente comprometerse y fusionarse.


0

Tuve un problema similar que se redujo a la eliminación de archivos en "rutas no fusionadas"

Esos archivos tuvieron que eliminarse usando git rm


0

Entonces, desde el error anterior. Todo lo que tiene que hacer para solucionar este problema es revertir su código. ( git revert HEAD) luego git pully luego rehace sus cambios, luego git pullnuevamente y pudo comprometerse o fusionarse sin errores.


0

Desde git 2.23 (agosto de 2019) ahora tiene un acceso directo para hacer esto: git restore --staged [filepath]. Con este comando, puede ignorar un archivo en conflicto sin necesidad de agregarlo o eliminarlo.

Ejemplo:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.