Git: eliminar un archivo

    A medida que su proyecto cambie con el tiempo, es probable que en alg煤n momento deba eliminar un archivo o un directorio completo del repositorio. Dado que esto implica m谩s que cambiar el contenido de un archivo, Git tiene un comando especial para manejar la eliminaci贸n de archivos, que tambi茅n toma algunas banderas importantes seg煤n su caso de uso.

    En este breve art铆culo, echaremos un vistazo a git rm comando y c贸mo usarlo para eliminar archivos y directorios de su repositorio.

    Eliminar un archivo

    El uso m谩s simple de este comando es eliminar un solo archivo del repositorio, lo que puede hacer usando la siguiente sintaxis:

    $ git rm <filename>
    

    Digamos que tenemos un repositorio de Git con el siguiente contenido:

    $ git ls-files
    .gitignore
    index.js
    lib/api.js
    lib/db.js
    package.json
    

    Por alguna raz贸n, supongamos que ya no necesitamos el lib/db.js archivo. Para eliminarlo de nuestro repositorio, ejecutamos lo siguiente:

    $ git rm lib/db.js 
    rm 'lib/db.js'
    

    Ahora, enumerar nuestros archivos de repositorio nuevamente muestra que se elimin贸:

    $ git ls-files
    .gitignore
    index.js
    lib/api.js
    package.json
    

    Sin embargo, a煤n no hemos terminado. Si ejecuta el status , notar谩 que la eliminaci贸n del archivo a煤n est谩 en etapa de preparaci贸n y debe confirmarse en el repositorio, al igual que cualquier otro cambio que realice.

    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
        deleted:    lib/db.js
    $ git commit -m "Removed db.js file"
    [master cf191e4] Removed db.js file
     1 file changed, 0 insertions(+), 0 deletions(-)
     delete mode 100644 lib/db.js
    

    Eliminar varios archivos

    Eliminar varios archivos de un repositorio es muy similar al caso de uso anterior de eliminar un solo archivo. Dependiendo de su m茅todo preferido, hay algunas formas de hacer esto. Por ejemplo, puede simplemente enumerar expl铆citamente todos los archivos que se eliminar谩n:

    $ git rm lib/db.js lib/api.js
    rm 'lib/api.js'
    rm 'lib/db.js'
    

    O, si hay m谩s archivos de los que desea enumerar, siempre puede usar el car谩cter comod铆n:

    $ git rm lib/*.js
    rm 'lib/api.js'
    rm 'lib/db.js'
    

    Tenga en cuenta que al eliminar todo el contenido del lib directorio, Git tambi茅n eliminar谩 el directorio real. Esto se hace porque Git solo rastrea archivos, no directorios:

    $ git ls-files
    .gitignore
    index.js
    package.json
    

    Eliminar un directorio

    Para eliminar un directorio completo de su repositorio de Git, todo lo que necesita hacer es eliminar todos los archivos en ese directorio del repositorio. Esto se puede hacer usando uno de los m茅todos anteriores si no hay muchos archivos, pero en muchos casos esto ser铆a demasiado engorroso. En este caso, la mejor opci贸n ser铆a eliminar de forma recursiva todos los archivos utilizando el -r bandera.

    $ git rm -r <directory>
    

    Para este ejemplo, trabajaremos con nuestro ejemplo anterior y agregaremos algunos archivos m谩s a nuestro lib directorio:

    $ git ls-files
    .gitignore
    index.js
    lib/apis/aws.js
    lib/apis/github.js
    lib/apis/stripe.js
    lib/db.js
    package.json
    

    Aqu铆 tenemos archivos y directorios anidados dentro lib. Para eliminar todo lib directorio del repositorio por completo, podemos usar el -r bandera:

    $ git rm -r lib
    rm 'lib/apis/aws.js'
    rm 'lib/apis/github.js'
    rm 'lib/apis/stripe.js'
    rm 'lib/db.js'
    

    Tenga en cuenta que esto maneja la eliminaci贸n de todos los archivos bajo lib, e incluso lib/apis, ya que busca de forma recursiva en el directorio.

    Y finalmente, no olvides confirmar tus cambios:

    $ git status
    On branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
        deleted:    lib/apis/aws.js
        deleted:    lib/apis/github.js
        deleted:    lib/apis/stripe.js
        deleted:    lib/db.js
    
    $ git commit -am "Removed lib directory"
    [master 53fc6af] Removed lib directory
     4 files changed, 0 insertions(+), 0 deletions(-)
     delete mode 100644 lib/apis/aws.js
     delete mode 100644 lib/apis/github.js
     delete mode 100644 lib/apis/stripe.js
     delete mode 100644 lib/db.js
    

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *