Archivos de marcas postales como renombrar en git

Hemos cambiado el nombre y cambiado algunos files en git y ahora git lo muestra como eliminado y agregado.

¿Es posible marcar un file después de una confirmación como renombrar, por ejemplo, una operación de rebase?

Sería bueno corregir nuestra historia. Force push permitido;)

No, no es posible marcar un file como renombrado / movido después del hecho porque no hay forma de marcar un file como renombrado / movido en git en absoluto.

Internamente en el repository, los cambios de nombre o los movimientos no se rastrean en absoluto.

En cambio, las herramientas en la parte superior del repository git, es decir. el ejecutable git y todos sus ejecutables hermanos, están haciendo este trabajo pesado.

En particular, cuando se ha agregado un file, algunos de los commands de git verán el rest de la confirmación para ver si puede ubicar el origen de ese file, como otro file que se eliminó. Git incluso intentará hacer coincidir los files que no son idénticos en contenido, pero tiene que detenerse en algún lugar.

Lo que significa que los cambios que hizo a los files en la misma confirmación son demasiado extensos para que este algorithm "search files similares" lo considere candidato para dicha salida de logging de movimiento / cambio de nombre.

Así que, básicamente, su única opción es volver atrás y volver a hacer esa confirmación, dividiéndola en dos (o más) confirmaciones distintas en las que mueva / cambie el nombre de los files o los cambie, pero no ambos en el mismo compromiso.

Entonces, por ejemplo, si su historial de commit se ve así:

Commit #1: Introduce some files Commit #2: Move and change said files Commit #3: Further change the moved files 

lo dividirías en esto:

 Commit #1: Introduce some files Commit #2: Move files Commit #3: Change said files Commit #4: Further change the moved files 

Esto debería hacer que las herramientas git puedan ver los cambios de nombre / movimientos correctamente.

También podría tratar de dividirlo networkinguciendo la cantidad de cambios que hizo a los files, pero luego solo está combatiendo los umbrales. Es mejor networkingucir la posibilidad de una falta de coincidencia a 0 simplemente haciendo un movimiento / cambio de nombre o un cambio, pero no ambos, en el mismo compromiso.