¿Por qué "git rm -cached" elimina los files actualizados?

Tengo un README.md en mi repository git local. El repository de git local no tiene nada organizado y nada ha cambiado en el tree de trabajo. Vea abajo:

$ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working tree clean 

Luego ejecuto git rm --cached -- README.md , dice esto:

 $ git rm --cached -- README.md rm 'README.md' 

De acuerdo con el git help rm :

– caching

Utilice esta opción para eliminar y eliminar trazados solo del índice . Los files de tree de trabajo, modificados o no, se dejarán solos.

No hay cambios escalonados sobre README.md. Por lo tanto, el área / índice de ensayo no debe contener nada. ¿Por qué todavía se elimina?

ADD1

Basado en la respuesta de @ DietrichEpp:

Los estados existen en 3 lugares como git se refiere:

  1. tree de trabajo
  2. índice
  3. repo

Git decide lo que un-tracked o un-staged al comparar 1 y 2;

Git decide qué se to-be-commited al comparar 2 y 3;

git reset se puede usar para cambiar el estado en 1 y / o 2.

El índice no contiene nada, contiene lo que sea que va a comprometer, incluidos los files que ya forman parte del repository. Supongamos que ejecuta los siguientes commands:

 touch a.txt b.txt git add a.txt b.txt git commit git rm --cached a.txt git commit 

Cuando ejecuta git add primera vez, agrega a.txt y b.txt al índice. Luego, git commit toma todo lo que está en el índice y lo compromete.

El índice todavía contiene a.txt y b.txt .

Cuando se git rm --cached , elimina a.txt del índice, pero b.txt aún está en el índice. Luego, git commit toma todo lo que está en el índice (solo b.txt ) y lo confirma. El file a.txt todavía está allí, porque git rm --cached no toca el file real, y tampoco lo hace git commit .

Debido a que el primer commit contiene a.txt y el segundo commit no, esto aparece como una eliminación.

Lo principal que hace el git status es mostrarte la diferencia entre el índice y los files reales en el disco. Entonces, si el git status está vacío, todos los files no ignorados en el disco también están en el índice.