IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GIT Discussion :

modifier le contenu d'un commit


Sujet :

GIT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par défaut modifier le contenu d'un commit
    bonjour,
    je cherche à supprimer des fichiers d'un commit ancien mais de façon à ne plus les voir dans l'historique de ce commit.
    J'ai essayé de faire un rebase interactif; ça a supprimé les fichiers du commit mais dans l'historique de ce commit, on voit qu'ils ont été "deleted".
    En fait, je ne suis pas sur que ce soit possible de ne plus les voir dans l'historique.

    Merci d'avance
    Cordialement,

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 500
    Par défaut
    Bonjour,

    Citation Envoyé par cyrcec Voir le message
    je cherche à supprimer des fichiers d'un commit ancien mais de façon à ne plus les voir dans l'historique de ce commit.
    En fait, un commit donné n'a pas d'historique à proprement parler : c'est justement la chaîne de commits formée jusqu'ici qui forme l'historique de ton dépôt. Sous Git, chaque commit correspond à l'état complet de ton dépôt pour une révision donnée indépendamment des autres (c'est d'ailleurs ce qui te permet de les comparer si facilement ensuite).

    J'ai essayé de faire un rebase interactif; ça a supprimé les fichiers du commit mais dans l'historique de ce commit, on voit qu'ils ont été "deleted".
    En fait, je ne suis pas sur que ce soit possible de ne plus les voir dans l'historique.
    Si, c'est effectivement ce qu'il faut faire mais ça dépend de la façon dont tu t'y es pris.


    Option 1

    Il faut en fait faire un git rebase -i en ciblant le commit qui précède celui où tu as introduit les fichiers, puis remplacer « pick » par « edit » devant le commit qui les a introduits et qui doit normalement se trouver en début de liste. À ce stade, Git te rend la main juste après l'avoir appliqué, ce qui te permet de l'amender.

    Il faut donc faire en sorte que le fichier en question « ne soit plus ajouté » mais sans l'effacer de ton dépôt si tu veux quand même travailler avec. Il faut donc le retirer de l'index uniquement avec git rm --cached <ton fichier> puis amender le commit avec git commit --amend car cela consiste en réalité à le remplacer par un nouveau commit qui va enregistrer le dernier état en date de l'index (celui que tu viens précisément de mettre à jour).

    Tu lances ensuite git rebase --continue pour appliquer le reste du programme (la liste que tu as éditée au début), ne consistant alors qu'à faire des picks de tous les commits suivants sans s'arrêter (plus précisément : le différentiel entre les commits originaux successifs et pas le contenu lui-même).

    ATTENTION : ceci va bien fonctionner, mais seulement si les fichiers concernés n'ont PAS été modifiés ensuite au cours de l'histoire de ton dépôt. Dans le cas contraire, l'opération va s'arrêter à chaque fois que ce sera le cas et il faudra nettoyer à la main.

    Je te conseille git log --oneline <ton fichier> pour vérifier d'abord si c'est le cas ou pas.


    Option 2

    Tu utilises git filter-branch ( https://git-scm.com/docs/git-filter-branch ) avec --index-filter, mais cela demande de lire un peu la doc sous peine d'automatiser les erreurs que l'on pourrait causer et donc en faire des catastrophes.

    Bon courage.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 5
    Par défaut
    Merci !
    J'ai bien fait l'option 1 donc ça semble tout bon.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Modifier le contenu d'une liste box automatiquemen
    Par Phenomenium dans le forum Langage
    Réponses: 7
    Dernier message: 16/01/2006, 21h42
  2. Modifier le contenu d'un DBEdit [query]
    Par Askarod dans le forum Bases de données
    Réponses: 15
    Dernier message: 08/12/2005, 14h47
  3. modifier le contenu de ma base
    Par dolphi dans le forum ASP
    Réponses: 2
    Dernier message: 22/08/2005, 17h17
  4. Réponses: 20
    Dernier message: 01/06/2005, 09h37
  5. modifier le contenu d'une table avec innerHTML
    Par francon81 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/05/2005, 09h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo