Cómo git-rama de filtro todo el comando?

Cómo git-rama de filtro todo el comando?

El "rama de filtro git"El comando reescribe todo el historial de la rama, lo que significa que cualquier compromiso que se elimine o modifique se perderá permanentemente. Por lo tanto, se sugiere que haga una copia de seguridad de su repositorio antes de utilizar este comando. Además, este comando crea nuevas comodidades y Sha hash. Por lo tanto, no se recomienda usarlo en una rama pública.

Este artículo discutirá:

    • ¿Cuáles son las opciones básicas de filtro disponibles para el "rama de filtro git" Dominio?
    • Cómo utilizar el "rama de filtro git"Comando con el"-filtro de árboles" Opción?
    • Cómo utilizar el "rama de filtro git"Comando con el"-filtro índice" Opción?
    • Cómo utilizar el "rama de filtro git"Comando con el"-filtro de msg" Opción?

¿Cuáles son las opciones de filtro básicas disponibles para el comando "Git Filter-Branch"??

Las opciones de filtro básicas para "rama de filtro gitLos comandos se dan a continuación:

Opciones de filtro Descripción
-envidia Modifique el entorno donde los usuarios se comprometen.
-filtro de árboles Reescribe el árbol y su contenido.
-filtro índice Reescribir el índice.
-filtro de padres Reescribir la lista de padres del comité.
-filtro de msg Reescribir los mensajes de confirmación.
-filtros de compromiso Realizar Comprometes.
-filtro de nombre de etiqueta Reescribe el nombre de la etiqueta.
-sinvino Instruir a Git-Filter-Branch para eliminar las confirmaciones vacías.

Cómo utilizar el comando "Git Filter-Branch" con la opción "-Tree-Filter"?

A veces, los usuarios desean eliminar un archivo específico de todas las confirmaciones debido a algunas razones, como si el archivo contiene información confidencial o secreta. En esta situación, utilice el "Git Filter -Branch -Tree -Filter 'RM -RF'Comando para eliminar un archivo en particular de todo el historial de un repositorio.

Siga las instrucciones proporcionadas para hacerlo.

Paso 1: Navegue al repositorio local

Primero, escriba el comando dado y redirige al directorio deseado:

$ CD "C: \ git \ local_repo"


Paso 2: Ver contenido de repositorio

A continuación, muestre el contenido del repositorio actual usando el siguiente comando:

$ LS


Según la salida a continuación, el repositorio actual contiene dos archivos. Elija un archivo en particular que debe eliminarse. Por ejemplo, hemos seleccionado el "archivo1.TXT" archivo:


Paso 3: eliminar el archivo de todo el historial

Luego, ejecute el comando proporcionado junto con el nombre del archivo seleccionado para eliminar ese archivo:

$ Git Filter-Branch --Tree-Filter 'RM -RF File1.TXT'


Aquí:

    • "-filtro de árbolesLa opción se usa para especificar un comando para ejecutar en cada árbol en la rama.
    • "RM -RF"La opción se utiliza para eliminar el"archivo1.TXT" archivo:


Nota: Si el archivo no está presente en algunos compromisos, ejecutando el "'RM Nombre de archivo"La opción no funcionará para árboles y se compromete.

Paso 4: Verificar los cambios

Por último, asegúrese de que el archivo se haya eliminado al ver el contenido del repositorio:

$ LS


Cómo utilizar el comando "Git Filter-Branch" con la opción "-Dinex-Filter"?

Si el usuario desea modificar el índice del repositorio en lugar de toda la rama, el "Git Filter-Branch -dex-FilterEl comando se puede usar. Esto puede ser útil para eliminar archivos específicos del índice.

Paso 1: Ver archivos del repositorio

Ejecute el comando establecido a continuación para enumerar los archivos disponibles del repositorio actual:

$ Git LS-Files


La imagen de abajo muestra la lista de archivos. Seleccione el archivo deseado que desea eliminar del índice. Por ejemplo, hemos seleccionado el "archivo4.TXT" archivo:


Paso 2: eliminar el archivo del índice

Luego, elimine el archivo seleccionado del índice escribiendo el siguiente comando:

$ Git Filter-Branch --index-Filter 'Git RM-Cached --Ingore-Unmatch File4.TXT'


Aquí:

    • "-filtro índice"Especifica el comando que se utilizará para filtrar el índice.
    • "-en cachéLa opción "elimina/elimina los archivos del índice.
    • "-ignorar-inmatch"Ignora cualquier error:



Paso 3: Verificar los cambios

Por último, ejecute el comando proporcionado dado para asegurarse de que el archivo se haya eliminado del índice:

$ Git LS-Files


Cómo utilizar el comando "Git Filter-Branch" con la opción "-Msg-Filter"?

A veces los usuarios quieren reescribir el mensaje de confirmación específico del historial de registros. Para este propósito, el "Git Filter -Branch -f -Msg -Filter 'SED "S //// G"' -todo" puede ser usado.

Paso 1: Ver Historia de cometer

Primero, verifique el historial de Conjunto Sha hash del repositorio de trabajo actual:

$ git log -enneline


En la siguiente captura de pantalla, se puede ver el historial de confirmación. Elija el mensaje de confirmación deseado que debe reescribirse. Por ejemplo, hemos seleccionado el "archivo2 agregado"Mensaje de confirmación:


Paso 2: Reescribir un mensaje de confirmación

A continuación, ejecute el siguiente comando para reescribir el mensaje de confirmación seleccionado:

$ Git Filter-Branch -F--MSG-Filter 'SED "S/File2 agregado/agregando archivo2/g"'---All


Aquí:

    • "-filtro de msgLa opción se usa para cambiar el mensaje de confirmación.
    • "-FLa opción realiza la operación con fuerza.
    • "sed"El comando busca la cadena"archivo2 agregado"En el mensaje de confirmación y lo reemplaza con el"Agregar archivo2" mensaje.
    • "- -todoLa opción "aplica el filtro a todas las ramas en el repositorio:



Paso 3: Verificación

Por último, verifique los cambios verificando la confirmación en la historia:

$ git log -enneline


Se puede observar que el antiguo mensaje de confirmación ha sido reemplazado por el nuevo mensaje de confirmación:


Eso fue todo sobre el "rama de filtro git"Comando en GIT.

Conclusión

El "rama de filtro git"El comando se usa para reescribir el historial de confirmación de una rama en particular o todas las ramas en un repositorio. Permite a los usuarios realizar varias operaciones en compromisos, como eliminar archivos, modificar mensajes de confirmación, etc. Además, esto se puede usar para limpiar un repositorio específico y eliminar información confidencial. Este artículo explicó sobre el comando "Git Filter-Branch" y sus opciones de filtro.