¿Cómo regenerar un índice para un pago escaso con cambios locales?

¿Cómo regenerar un índice para un pago escaso con cambios locales?

Utilizo git con pagos escasos para trabajar con subconjuntos de un repositorio monolítico muy grande. El rendimiento es bueno con pagos escasos, terrible sin ellos.

En ocasiones, mi índice se corrompe (la integración de git de Xcode es mi causa raíz normal, pero lo he manejado de diferentes maneras).

Para un árbol de trabajo normal, esto está bien, simplemente elimino el archivo de índice y git resetes posible que haya tenido algunos cambios preparados que vuelven a no preparados, pero generalmente no pierdo nada importante.

Pero para un pago disperso, git resetno tomará en cuenta el manifiesto disperso desde cero y, por lo tanto, concluirá que todos los archivos en el repositorio completo que no están en el árbol de trabajo (es decir, todo lo que excluyó mi pago disperso) deben haber sido eliminado, dejándome con una enorme lista de archivos "eliminados".

Entonces, la forma recomendada de restablecer el índice con información de pago escasa (es decir, configurar los indicadores de skip-worktree) es llamar git read-tree -mu HEAD, pero esto requiere que no haya cambios no preparados, necesito conservar esos cambios no preparados y no puedo confirmarlos. ellos o prepararlos o cualquier cosa, ya que no tengo índice (y dados todos los archivos "eliminados", también tomaría mucho tiempo revisarlos solo para que git pueda eliminarlos nuevamente una vez que se dé cuenta de que no están en el pago escaso).

Si estuviera dispuesto a perder mis cambios locales, podría llamar a git read-tree -m --reset HEAD, lo cual funciona. Pero dado que el objetivo es mantener mis cambios no comprometidos, eso no es suficiente.

Respuesta1

La mejor solución que he encontrado hasta ahora es mover todos mis cambios a una ubicación temporal, ejecutarlos git read-tree -mu HEAD, luego eliminar todos los archivos que crea git y reemplazarlos con los cambios originales.

Esto significa esperar a que git vuelva a crear todos los archivos de extracción dispersos, pero al menos no tengo que esperar a que cree todos los demás archivos en el repositorio que no quiero extraer (que tiende a sermuchomás extenso).

información relacionada