repositorio - ¿Por qué usar ''git rm'' para eliminar un archivo en lugar de ''rm''?
ignorar archivos git (6)
En SVN, eliminar algo del sistema de archivos directamente (en lugar de usar svn) creó un montón de dolores de cabeza. Hasta el momento, al usar git, no he encontrado que esto sea un problema, pero noto que git tiene su propia implementación de rm.
¿Hay una diferencia? ¿Estoy haciendo algo mal?
Elimine los archivos del índice, o del árbol de trabajo y el índice. git rm no eliminará un archivo de su directorio de trabajo.
A continuación, le mostramos cómo eliminar un archivo usando rm -f
y luego eliminarlo de su índice con git rm
$ rm -f index.html
$ git status -s
D index.html
$ git rm index.html
rm ''index.html''
$ git status -s
D index.html
Sin embargo, puedes hacer esto todo de una vez con solo git rm
$ git status -s
$ git rm index.html
rm ''index.html''
$ ls
lib vendor
$ git status -s
D index.html
Al usar git rm, la eliminación será parte de su próxima confirmación. Entonces, si quieres presionar el cambio, debes usar git rm
Eliminar archivos usando rm
no es un problema per se, pero si luego quieres confirmar que el archivo fue eliminado, tendrás que hacer un git rm
todos modos, por lo que también podrías hacerlo de esa forma.
Además, dependiendo de su caparazón, haciendo git rm
después de haber eliminado el archivo, no obtendrá la finalización de pestañas, por lo que tendrá que escribir la ruta usted mismo, mientras que si git rm
mientras el archivo aún existe, la finalización de pestañas funcionará como normal.
Sin embargo, si terminas usando rm en lugar de git rm. Puede omitir el complemento git y comprometer directamente los cambios usando:
git commit -a
git rm
eliminará el archivo del índice y el directorio de trabajo (solo indexará si usó --cached
) para que la eliminación se --cached
para el siguiente commit.
Si solo usa rm
, tendrá que seguir con git add <fileRemoved>
. git rm
hace esto en un solo paso.
También puede usar git rm --cached
que eliminará el archivo del índice ( git rm --cached
para su eliminación en la siguiente confirmación), pero conserve su copia en el sistema de archivos local.