¿Limpiando después de una fusión de git en conflicto?

2 minutos de lectura

Tuve un pequeño conflicto en un .h archivo de encabezado en un proyecto en el que estoy trabajando. Este proyecto se rastrea en Git.

Afortunadamente, el conflicto fue muy simple de resolver. solía

git mergetool

Y eligió el valor predeterminado (opendiff) que parecía ser FileMerge en mi Mac. Hice los cambios apropiados, guardé el archivo y lo cerré.

Git luego me preguntó si la fusión fue exitosa, dije que sí:

Was the merge successful? [y/n] y

Pero ahora, tengo:

> git st
# On branch develop
# Changes to be committed:
#   modified:   MyHeader.h
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   MyHeader.h.BACKUP.52920.h
#   MyHeader.h.BASE.52920.h
#   MyHeader.h.LOCAL.52920.h
#   MyHeader.h.REMOTE.52920.h
#   MyHeader.h.orig

¿Cuáles de esos archivos de conflicto basura adicionales fueron creados por FileMerge y cuáles por Git?

Y más importante: ¿Cómo los elimino?

Simplemente puede eliminarlos como lo haría con cualquier otro archivo. Por ejemplo:

rm MyHeader.h.orig

Alternativamente, si no hay otros archivos sin seguimiento, luego de confirmar con

git commit -a

puede limpiar su repositorio con

git clean -n
git clean -f

git clean -n te diré lo que git clean -f lo hará, por lo que puede estar seguro de que es lo que quiere.

  • Gracias – git clean -n/-f ha sido el destino durante mucho tiempo. También puede especificar una ruta al final, si solo desea realizar la limpieza en una subcarpeta.

    –Craig Otis

    1 de marzo de 2014 a las 21:44

  • A veces *.orig está en el .gitignore expediente. En este caso, el camino a seguir es ejecutar en seco, incluidos los archivos ignorados: git clean -nx */*.origverifique y luego elimine git clean -fx */*.orig. El crédito va a: travisjeffery.com/b/2011/12/…

    – Julián Cárdenas

    18 de agosto de 2016 a las 18:39


Si son los únicos archivos sin seguimiento, puede utilizar git clean para eliminarlos. Ejecutarlo una vez con el -n marca para ver qué se eliminará, luego, si está seguro, ejecútelo con -f. ¡No lo use si tiene archivos sin rastrear que desea conservar!

  • Nota: “si son los únicos archivos sin seguimiento”. Ten mucho cuidado con git clean, ya que podría perder fácilmente los mismos archivos que no están bajo el control de versiones. Recomiendo simplemente eliminarlos manualmente.

    –Brent Fausto

    12/03/2013 a las 23:10

  • O bien, me he acostumbrado a usar un patrón de archivo, como: git clean -f *.orig

    –Craig Otis

    23 de septiembre de 2014 a las 11:56

Primero confirme su fusión.

Una vez que esté satisfecho de que todo está bien, simplemente elimine estos archivos adicionales manualmente (usando rm <filename>por ejemplo).

¿Ha sido útil esta solución?