¿Por qué tengo que decirle a Git que he eliminado un file?

Estoy construyendo un logging histórico de desarrollo en git desde files zip guardados. Estoy feliz por la necesidad de git add . files al área de ensayo para que los files seleccionados se hayan confirmado. Hasta aquí todo bien.

Sin embargo, ahora estoy en la situación de simplemente agregar el primer set de files (descomprimido), confirmarlos y luego eliminar su directory y contenido , antes de descomprimir el siguiente set, agregarlos y confirmarlos, a menudo con nombres de directory variantes.

Mi problema de comprensión es que estoy obteniendo "cambios fuera de escena" que muestran (Git Gui) de la dirección / files que borré hace unos commits. Entendí que git toma una instantánea de los files actuales , por lo que no debería haber ningún file eliminado allí.

Entonces, ¿mis confirmaciones recientes contienen copys (en su tree) de esos files eliminados? ¿Cuándo / por qué se necesita usar git rm en lugar de una rm simple (o equivalente de Windows)? ¿Debería simplemente ignorar el post? es decir, ¿hay explicaciones sobre cómo maneja git los mecanismos de eliminación y rastreo que compiten entre sí?

Lo adivinas bien: las confirmaciones recientes contenían copys de esos files eliminados.

Prueba git add -A . , también borra la etapa.

Si quieres saber por qué … porque esa es la mejor manera de utilizar el área de ensayo: git tiene un concepto de "área de escenario", que te permite comprometer solo una parte de tu modificación, lo que facilita la split de parches.

Si simplemente elimina utilizando rm y luego confirma, esa eliminación no se realiza, por lo que git simplemente ignora el hecho de que ese file se ha ido.

Si desea que git reconozca la eliminación de ese file y actualice el repository en consecuencia, debe get un file. En tu caso, git add -A . después de eliminar el anterior y descomprimir el nuevo le dará lo que quiere. Agrega todas las adiciones, eliminaciones y cambios al área de preparación.

Con su plan actual, ciertamente tiene muchos files en el repository que no desea. Su mejor opción es comenzar de nuevo, utilizando la siguiente estrategia.

  1. Crear un repo
  2. Descomprimir files
  3. git add -A .
  4. git commit
  5. Borrar todos los files
  6. Repetir desde 2
    Intereting Posts