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"

Kiarash
fuente

Respuestas:

245

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

jonnystoten
fuente
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ó.

Prabhakar Undurthi
fuente
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.

Muman
fuente
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.

Priyanka Arora
fuente
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

Yann VR
fuente
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.

diseños de aplicaciones
fuente
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

Macabeo
fuente