Necesitaba eliminar algunos archivos Xcode de un repositorio antiguo que debería haber sido ignorado. Así que me encontré con el siguiente comando¿Por qué la opción cache en filter-branch elimina archivos del directorio de trabajo?
git filter-branch --index-filter 'git rm -f --cached --ignore-unmatch *mode1v3 *pbxuser' HEAD
Mi entendimiento es que la adición de --cached no afectaría el directorio de trabajo actual, pero git borrado esos archivos que coinciden también. Afortunadamente, tuve una copia de seguridad (!) Pero tengo curiosidad sobre por qué hace esto, o estoy malentendiendo lo que --cached
hace?
algo no relacionado ----- afaik, no se puede usar comodín ('*') con '--index-filter' - al menos no sin comillas. El shell desplegado por 'git filter-branch' expandiría el comodín usando el árbol de trabajo. –
¿Lo intentó sin el '-f'? – VonC
Sí mismo resultado sin '-f' – martinjbaker