2010-04-20 8 views
4

Y a-t-il un moyen pour que git status ignore certaines modifications dans un fichier?git status: comment ignorer certaines modifications

Contexte

J'ai quelques fichiers dans mon dépôt qui sont générés automatiquement (oui, je sais qui est généralement pas recommandé, mais je n'ai pas le pouvoir de changer cela). Chaque fois que je construis mon arbre, ces fichiers générés automatiquement contiennent des informations d'état (qui les a générées, un horodatage, etc.).

Quand je dis git status, je voudrais qu'il lance un filtre sur ces fichiers générés qui supprime ces informations d'état transitoire. Je veux seulement qu'il apparaisse dans la section "Changed but not updated:" de la sortie de git s'il y a d'autres changements réels.

Je suis en mesure utilisant l'approche .gitattributes trouvée à https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes, pour obtenir git diff d'ignorer ces lignes d'état change au moyen d'un simple filtre egrep. Je voudrais obtenir git status pour également utiliser les filtres textconv (ou quelque chose d'équivalent).

Je préférerais que les fusions ne soient pas affectées par ce filtrage.

Répondre

0

Je pensais que je fasse rapport sur les deux solutions de contournement que j'ai utilisé:

  • Supprimer les informations d'état à partir des fichiers générés automatiquement. Disposez d'un script de mise à jour qui exécute git checkout origin ... dans le cadre de la génération, pour tous les fichiers générés sans modifications sémantiques.
1

Vous pouvez également utiliser des filtres pour masquer vos modifications de git. Spécifiez un filtre "propre" qui "nettoiera" les changements inutiles (donnez la version du fichier de Git à Git), donc il ne verra pas la modification (mais il peut toujours lister le fichier dans "git status").

Détails: Better way of making Git to turn a blind eye on my changes

Voir aussi d'autres réponses à cette question, ils ont aussi d'ignorer les changements.

1

Une solution facile est, exécutez la commande suivante sur le fichier ou le chemin que vous voulez ignorer les changements de:

git update-index --assume-unchanged <file> 

Si vous voulez commencer le suivi des modifications exécutez à nouveau la commande suivante:

git update-index --no-assume-unchanged <file> 

vous devrez vous rappeler de recommencer le suivi quand il y a une modification que vous voulez valider.

+0

Merci pour la suggestion; Malheureusement, je ne veux pas ignorer complètement les fichiers. Je veux juste ignorer certains types de changements dans les fichiers. –

Questions connexes