Maison outils de développement git effacer l'historique

effacer l'historique

May 25, 2023 pm 06:35 PM

Git est un outil de contrôle de version couramment utilisé et largement utilisé dans le développement de projets. Pendant le développement du projet, nous utilisons généralement diverses commandes git pour le contrôle et la gestion des versions, notamment la soumission de code, la fusion de branches et d'autres opérations. Cependant, dans certains cas, nous pouvons avoir besoin d'effacer l'historique Git, par exemple en supprimant des informations sensibles ou en effaçant des enregistrements de validation inutiles. Ci-dessous, nous verrons comment effacer l'historique de Git.

1. Sauvegarde

Avant d'effectuer l'opération de suppression de l'historique Git, nous devons effectuer une sauvegarde pour éviter des erreurs ou des situations inattendues dans l'opération. Il est important de sauvegarder la base de code actuelle dans un endroit sûr afin que nous puissions restaurer notre base de code si nécessaire. Nous pouvons utiliser la commande packaging de Git pour sauvegarder le projet dans un fichier compressé, par exemple :

git archive --format zip --output backup.zip HEAD
Copier après la connexion

Cette commande empaquetera la base de code actuelle dans un fichier ZIP et l'enregistrera dans backup.zip.

2. Effacer l'historique

  1. Utilisez la commande pour effacer l'historique d'un seul fichier

Supprimer l'historique d'un seul fichier est une opération relativement simple Nous pouvons utiliser la commande suivante pour y parvenir :

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch path/to/file' --prune-empty -- --all
Copier après la connexion

. Cette commande Le fichier cible sera complètement supprimé de l'historique. Parmi eux, path/to/file représente le chemin du fichier à effacer. path/to/file 表示要清除的文件路径。

  1. 使用命令清除 commit 的历史纪录

有时候,我们需要删除某个 commit 及其之后的历史纪录。为此,我们可以使用 Git 的 rebase 命令来实现。具体来说,我们需要执行以下步骤:

1)使用以下命令展示项目中所有的 commit

$ git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
Copier après la connexion

这个命令会显示项目中所有的 commit 记录。

2)决定要清除的 commit 的 SHA 值

我们需要查找要删除 commit 的 SHA 值,可以从下面的 commit 日志中获取:

commit 55d4d98de4caf2ac1a8f783624c58e533500f3d7
Author: John Doe <john@doe.com>
Date:   Fri Apr 30 16:01:07 2021 -0700

    Added new feature
Copier après la connexion

上述示例中的 commit SHA 值是 55d4d98de4caf2ac1a8f783624c58e533500f3d7.

3)使用以下命令将要清除的 commit 弹出

$ git rebase -i <commit-hash>^
Copier après la connexion

比如,我们要删除 SHA 值为 55d4d98de4caf2ac1a8f783624c58e533500f3d7 的 commit 及其之后的历史纪录,可以执行以下命令:

$ git rebase -i 55d4d98de4caf2ac1a8f783624c58e533500f3d7^
Copier après la connexion

4)编辑交互窗口以将目标 commit 弹出

在交互模式中,我们需要将需要删除的目标 commit 标记为 “drop”,然后将文件保存退出即可。示例如下所示:

pick 44a0c2c this is an invalid commit, which should be removed
drop 55d4d98 Added new feature
Copier après la connexion

在上例中,55d4d98 历史纪录将被删除,而 44a0c2c

    Utilisez la commande pour effacer l'historique des commits

    Parfois, nous devons supprimer un commit et son historique ultérieur. Pour ce faire, nous pouvons utiliser la commande rebase de Git. Plus précisément, nous devons effectuer les étapes suivantes :

    1) Utilisez la commande suivante pour afficher tous les commits du projet

    $ git filter-branch --force --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch ./' --tag-name-filter cat -- --all
    Copier après la connexion

    Cette commande affichera tous les enregistrements de commit du projet.

    2) Déterminez la valeur SHA du commit à effacer

    Nous devons trouver la valeur SHA du commit à supprimer, qui peut être obtenue à partir du journal de commit ci-dessous :

    $ git push origin --force --all
    Copier après la connexion

    La valeur SHA du commit ci-dessus L'exemple est 55d4d98de4caf2ac1a8f783624c58e533500f3d7 code>.

    🎜3) Utilisez la commande suivante pour afficher le commit à effacer 🎜rrreee🎜Par exemple, si nous voulons supprimer le commit avec la valeur SHA de 55d4d98de4caf2ac1a8f78362 4c58e533500f3d7 et ses enregistrements d'historique ultérieurs, nous pouvons exécuter la commande suivante : 🎜rrreee 🎜4) Modifiez la fenêtre interactive pour faire apparaître le commit cible 🎜🎜En mode interactif, nous devons marquer le commit cible qui doit être supprimé comme "drop", puis enregistrez le fichier et quittez. Un exemple ressemble à ceci : 🎜rrreee🎜Dans l'exemple ci-dessus, l'historique <code>55d4d98 sera supprimé et l'historique 44a0c2c deviendra le dernier commit. 🎜🎜5) Utilisez la commande suivante pour effacer l'ancien historique 🎜rrreee🎜Cette commande peut effacer le commit marqué comme « drop » et les commits qui le suivent. 🎜🎜6) Push vers l'entrepôt distant🎜🎜Enfin, nous devons forcer le push vers l'entrepôt distant pour mettre à jour les enregistrements historiques dans l'entrepôt distant et garantir l'exactitude des enregistrements historiques : 🎜rrreee🎜Veuillez noter que vous devez opérer avec Soyez prudent lors de l'exécution de la commande ci-dessus et assurez-vous d'avoir sauvegardé votre base de code. Car une fois supprimé, il ne peut plus être restauré. 🎜🎜Résumé🎜🎜Cet article explique comment utiliser Git pour effacer l'historique. Avant d'effectuer ces opérations, nous devons considérer les conséquences d'opérer sur des enregistrements historiques et effectuer des sauvegardes pour éviter des pertes irréversibles. Dans le même temps, nous devrions éviter d’effacer les documents historiques et ne les utiliser que lorsque cela est nécessaire. 🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les outils de gestion GIT pour une utilisation complète des outils de gestion GIT Comment utiliser les outils de gestion GIT pour une utilisation complète des outils de gestion GIT Mar 06, 2025 pm 01:32 PM

Cet article fournit un guide pour la gestion GIT, couvrant les outils de l'interface graphique (SourceTree, Gitkraken, etc.), les commandes essentielles (Git init, Git Clone, Git Add, Git Commit, etc.), les meilleures pratiques de gestion des succursales (branches de fonctionnalités, demandes de traction) et Merge Con

Comment pousser le validation spécifié Comment pousser le validation spécifié Mar 06, 2025 pm 01:39 PM

Ce guide explique comment pousser un seul engagement GIT dans une branche distante. Il détaille à l'aide d'une branche temporaire pour isoler l'engagement, en poussant cette branche à la télécommande, puis en supprimant éventuellement la branche temporaire. Cette méthode évite les conflits et

Comment afficher les contenus des engagements Comment afficher les contenus des engagements Mar 06, 2025 pm 01:41 PM

Cet article détaille les méthodes de visualisation du contenu Git Commit. Il se concentre sur l'utilisation de Git Show pour afficher les messages de validation, les informations sur l'auteur et les modifications (diffs), le log -p git -p pour les difficultés de plusieurs engins et les mises en garde contre la vérification directe des validations. Alt

La différence entre le validation et la poussée de Git La différence entre le validation et la poussée de Git Mar 06, 2025 pm 01:37 PM

Cet article explique la différence entre les commandes de validation et de push de Git. Git Commit enregistre les modifications localement, tandis que Git Push télécharge ces modifications engagées dans un référentiel distant. L'article met en évidence l'importance de comprendre cette distinction

Comment résoudre l'échec de la soumission de la validation GIT Comment résoudre l'échec de la soumission de la validation GIT Mar 06, 2025 pm 01:38 PM

Cet article aborde les échecs communs de git. Il détaille le dépannage des étapes pour des problèmes tels que les fichiers non suivis, les modifications non stagées, la fusion des conflits et les crochets pré-engageants. Des solutions et des mesures préventives sont fournies pour garantir le git wo plus lisse

La différence entre l'ajout et le commissation de git La différence entre l'ajout et le commissation de git Mar 06, 2025 pm 01:35 PM

Cet article explique les rôles distincts de Git Add et Git Commit in Git. Git ajoute des modifications des étapes, en les préparant à l'inclusion dans le communiqué suivant, tandis que Git Commit enregistre les modifications de mise en scène de l'historique du référentiel. Ce processus en deux étapes permet

Qu'est-ce que l'outil de gestion du code GIT? Qu'est-ce que l'outil de gestion du code GIT? Mar 06, 2025 pm 01:31 PM

Cet article présente Git, un système de contrôle de version distribué. Il met en évidence les avantages de Git par rapport aux systèmes centralisés, tels que les capacités hors ligne et la ramification / fusion efficace pour une collaboration améliorée. L'article détaille également l'apprentissage r

Comment utiliser le didacticiel des outils de gestion GIT pour utiliser les outils de gestion GIT pour les débutants Comment utiliser le didacticiel des outils de gestion GIT pour utiliser les outils de gestion GIT pour les débutants Mar 06, 2025 pm 01:33 PM

Ce guide de débutant présente Git, un système de contrôle de version. Il couvre les commandes de base (init, ajouter, commit, statut, journal, branche, cacher, fusionner, push, pull) et résoudre les conflits de fusion. Meilleures pratiques pour une utilisation efficace du GIT, y compris une communication claire

See all articles