Le "Branch Git»Commande réécrit toute l'histoire de la branche, ce qui signifie que tous les engins supprimés ou modifiés seront perdus en permanence. Par conséquent, il est fortement suggéré de sauvegarder votre référentiel avant d'utiliser cette commande. De plus, cette commande crée de nouveaux commits et Sha Hash. Il n'est donc pas recommandé de l'utiliser dans une branche publique.
Cet article discutera:
Quelles sont les options de filtre de base disponibles pour la commande «Git Filter-Branch»?
Les options de filtre de base pour «Branch Git»Les commandes sont données ci-dessous:
Filtrer les options | Description |
-filtre env | Modifier l'environnement où les utilisateurs font des commits. |
-filtre à arbre | Réécrivez l'arbre et son contenu. |
-filtre d'index | Réécrire l'index. |
-pilote parent | Réécrivez la liste des parents de la validation. |
-msg-filtre | Réécrivez les messages de validation. |
-cadré | Effectuer des commits. |
-Tag-nom-filtre | Réécrire le nom de la balise. |
-prune-vide | Instruisez Git-Filter-Branch pour supprimer les validations vides. |
Comment utiliser la commande «Git Filter-Branch» avec l'option «-tree-filter»?
Parfois, les utilisateurs souhaitent supprimer un fichier spécifique de tous les commits pour certaines raisons, comme si le fichier contient des informations confidentielles ou secrètes. Dans cette situation, utilisez le «Git Filter-Branch -Tree-Filter 'RM -rf'”Commande pour supprimer un fichier particulier de l'historique entier d'un référentiel.
Suivez les instructions fournies pour le faire.
Étape 1: Accédez au référentiel local
Tout d'abord, rédigez la commande à crue donnée et redirigez vers le répertoire souhaité:
$ CD "C: \ git \ local_repo"
Étape 2: afficher le contenu du référentiel
Ensuite, affichez le contenu du référentiel actuel à l'aide de la commande suivante:
$ ls
Selon la sortie ci-dessous, le référentiel actuel contient deux fichiers. Choisissez un fichier particulier qui doit être supprimé. Par exemple, nous avons sélectionné le «fichier1.SMS" déposer:
Étape 3: supprimer le fichier de l'historique entier
Ensuite, exécutez la commande fournie avec le nom de fichier sélectionné pour supprimer ce fichier:
$ git Filter-Branch --Tree-Filter 'RM -RF Fichier1.SMS'
Ici:
Note: Si le fichier n'est pas présent dans certains commits, alors exécutant le «'nom de fichier RM«L'option ne fonctionnera pas pour les arbres et les commits.
Étape 4: Vérifiez les modifications
Enfin, assurez-vous si le fichier a été supprimé en affichant le contenu du référentiel:
$ ls
Comment utiliser la commande «Git Filter-Branch» avec l'option «-index-filter»?
Si l'utilisateur souhaite modifier l'index du référentiel plutôt que la branche entière, le «Git Filter-Branch -index-Filter»La commande peut être utilisée. Cela peut être utile pour supprimer des fichiers spécifiques de l'index.
Étape 1: afficher les fichiers du référentiel
Exécutez la commande ci-dessous pour répertorier les fichiers disponibles du référentiel actuel:
$ git ls-files
L'image ci-dessous affiche la liste des fichiers. Sélectionnez le fichier souhaité que vous souhaitez supprimer de l'index. Par exemple, nous avons sélectionné le «fichier4.SMS" déposer:
Étape 2: supprimer le fichier de l'index
Ensuite, supprimez le fichier sélectionné de l'index en écrivant la commande suivante:
$ git Filter-Branch - Index-Filter 'Git RM - Cached --Ignore-Unmatch File4.SMS'
Ici:
Étape 3: Vérifiez les modifications
Enfin, exécutez la commande fournie donnée pour s'assurer que le fichier a été supprimé de l'index:
$ git ls-files
Comment utiliser la commande «Git Filter-Branch» avec l'option «-msg-filter»?
Parfois, les utilisateurs souhaitent réécrire le message de validation spécifique de l'historique des journaux. À cette fin, le «git Filter-Branch -f -msg-filter 'sed "S /// g"' - -all" peut être utilisé.
Étape 1: Voir l'histoire de la validation
Tout d'abord, vérifiez l'histoire du hachage SHA Commit du référentiel de travail actuel:
$ Git Log --Oneline
Dans la capture d'écran ci-dessous, l'histoire de la validation peut être vue. Choisissez le message de validation souhaité qui doit être réécrit. Par exemple, nous avons sélectionné le «fichier2 ajouté”Commissez le message:
Étape 2: réécrivez le message de validation
Ensuite, exécutez la commande suivante pour réécrire le message de validation sélectionné:
$ git filter-Branch -f --msg-filter 'sed "s / file2 ajout / ajout de fichier2 / g"' - - tout
Ici:
Étape 3: Vérification
Enfin, vérifiez les modifications en vérifiant le commit dans l'histoire:
$ Git Log --Oneline
On peut observer que l'ancien message de validation a été remplacé par le nouveau message de validation:
Il s'agissait du «Branch Git»Commande dans Git.
Conclusion
Le "Branch Git»La commande est utilisée pour réécrire l'historique des engagements d'une branche particulière ou de toutes les branches d'un référentiel. Il permet aux utilisateurs d'effectuer diverses opérations sur des engins, tels que la suppression des fichiers, la modification des messages de validation, etc. De plus, cela peut être utilisé pour nettoyer un référentiel spécifique et supprimer des informations sensibles. Cet article a expliqué la commande «Git Filter-Branch» et ses options de filtre.