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 *