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 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í:
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í:
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í:
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.