En SVN, eliminar algo del sistema de archivos directamente (en lugar de usar svn) creó una gran cantidad de dolores de cabeza.
No he encontrado que esto sea un problema al usarlo git, pero noto que git tiene su propia rmimplementación ( git rm).
¿Cuál es la diferencia entre rmy git rm?

git reset --hardy luego hacer un checkout de master para salir del estado de la cabeza separada porque sabía que no tenía ningún cambio no comprometido. Si no ha confirmado sus cambios, es posible que desee hacer un alijo git, pero soy relativamente nuevo en git, así que no sé el comando exacto. Si ha venido aquí en o después de 2014, espero que esta respuesta le haya sido útil.rm(en lugar degit rm) y eliminé muchos archivos al usarlo, y ahora no quierogitrastrearlos. ¿Hay alguna manera de revertir los cambios? Quierogitpisar mirmcomo eliminado ya que no lo uségit rmen primer lugar.Eliminar archivos usando
rmno es un problema en sí mismo, pero si luego quiere confirmar que el archivo fue eliminado, tendrá que hacerlo degit rmtodos modos, por lo que podría hacerlo de esa manera de inmediato.Además, dependiendo de su shell,
git rmdespués de haber eliminado el archivo, no obtendrá la finalización de la pestaña, por lo que tendrá que deletrear la ruta usted mismo, mientras que sigit rmaún existe el archivo, la finalización de la pestaña funcionará normalmente.fuente
git rmeliminará el archivo del índice y del directorio de trabajo (solo índice si lo usó--cached) para que la eliminación se organice para la próxima confirmación.fuente
Sin embargo, si terminas usando rm en lugar de git rm. Puede omitir el git add y confirmar directamente los cambios usando:
git commit -afuente
Así es como puede eliminar un archivo usando
rm -fy luego eliminarlo de su índice congit rmSin embargo, puede hacer todo esto de una sola vez con solo
git rmfuente
Cuando use git rm, la eliminación formará parte de su próxima confirmación. Entonces, si desea impulsar el cambio, debe usar git rm
fuente
Agregando a la respuesta de Andy, hay una utilidad adicional para
git rm:Seguridad : al hacerlo en
git rmlugar de hacerlorm, Git bloqueará la eliminación si hay una discrepancia entre laHEADversión de un archivo y el índice de ensayo o la versión del árbol de trabajo. Este bloque es un mecanismo de seguridad para evitar la eliminación de cambios en curso.Salvaguardando :
git rm --dry-run. Esta opción es una protección que ejecutará elgit rmcomando pero no eliminará los archivos. En su lugar, generará los archivos que habría eliminado.fuente