Quiero mover un archivo typescript en VSCode de manera que:
Puedo lograr cualquiera, pero no ambos.
Usando git mv: VSCode no actualiza las declaraciones de importación de los archivos principales.
Usando arrastrar y soltar manualmente: git considera esto como un archivo nuevo.
¿Cómo puedo hacer ambas cosas?
Después de investigar más, resulta que git en realidad no rastrea los cambios de nombre de los archivos .
Comparar:
Después de usar git mv , su git status devolverá algo como:
renamed: someFileName.ts -> newFileName.ts
Después de usar mv , su git status devolverá algo como:
deleted: someFileName.ts
untracked: newFileName.ts
^ a pesar del aparente reconocimiento de un cambio de nombre, git maneja ambos escenarios de manera idéntica.
Después de ejecutar git add -- someFileName.ts newFileName.ts , obtendrá lo mismo:
renamed: someFileName.ts -> newFileName.ts
Curiosamente, esta no es la norma para la mayoría de los SCM. Linus explica la decisión de diseño aquí .
Entonces, para responder a la pregunta original: Utilice el explorador de archivos integrado de VSCode para mover/renombrar archivos; esto actualiza las rutas de importación Y no perjudica el control de versiones.