El file de informes de fusión de Git se elimina cuando no está

Tengo una twig principal y una twig de características. Ambos contienen el file Bar.cs. Sin embargo, cuando bash fusionar la function en el maestro, informa que el file Bar.cs se eliminó en la twig de características. Pero Bar.cs nunca se eliminó en la function y, como dije, ambos files están presentes en ambas twigs.

Un logging de git del file Bar.cs en el maestro devuelve lo siguiente:

commit daaf6bd6c8d2a38b839fae44234ceef2a0c9e188 Author: xxxx Date: Fri Jun 28 10:17:18 2013 +0000 Renamed Foo.cs to Bar.cs 

Un logging de git del file Bar.cs en la característica devuelve lo siguiente:

 commit 93dea9f7a2b9474c169bf8a49c5a721572a9d369 Author: xxxx Date: Fri Jul 5 16:14:46 2013 +0000 Another change commit de9fbe3ae13ccdac8a540c653af10abb1a2f1006 Author: xxxx Date: Tue Jul 2 16:03:43 2013 +0000 Renamed Foo.cs to Bar.cs 

Como puede ver, en la function fusioné el cambio de maestro el 2 de julio y luego realicé otro cambio en el file el 28 de junio.

Cuando bash fusionarme, git dice:

 CONFLICT (rename/delete): Bar.cs deleted in feature and renamed in HEAD. Version HEAD of Bar.cs left in tree. 

¿Alguna idea de lo que está pasando?

Tuvo el mismo problema durante una combinación entre dos twigs sincronizadas desde un repository SVN con la herramienta git-svn .

Algunos files se renombraron en la twig master y se actualizaron en la twig de feature , pero git detectó estos files como eliminados en el lado de la feature :

 CONFLICT (rename/delete): Classes/Am deleted in feature and renamed in HEAD. Version HEAD of Classes/Am left in tree. 

La solución fue cambiar la estrategia de combinación para resolve lugar del recursive pnetworkingeterminado:

 git merge -s resolve feature 

Dado que los commits problemáticos parecen ser exactamente lo mismo, puedes intentar interactivamente rebasar la feature ontop master :

 git checkout feature git rebase -i master 

Aparecerá un editor emergente para permitirle elegir lo que se compromete a elegir. Eliminar la línea con la confirmación de9fbe . Esto volverá a aplicar todas las confirmaciones, excepto el cambio de nombre en la feature .

Luego, la fusión se puede hacer usando

 git checkout master git merge --no-ff feature