1098 votes

Recherche de toutes les de l'historique de Git pour une chaîne de caractères?

J'ai une base de code que je veux pousser vers GitHub de l'open source. Dans cette git-contrôlée de l'arbre source, j'ai certains fichiers de configuration qui contient les mots de passe. J'ai fait en sorte de ne pas suivre ce dossier et j'ai aussi ajouté ça à l' .gitignore le fichier. Cependant, je veux être tout à fait positif qu'aucune information sensible ne va être poussé, peut-être que si quelque chose se glissa entre commet ou quelque chose. Je doute que j'ai été assez imprudente pour ce faire, mais je veux être positif.

Est-il un moyen de "grep" tous git? Je sais que cela semble bizarre, mais par "tous", je suppose que je veux dire toutes les versions de fichier qui ne l'a jamais été. Je suppose que si il existe une commande qui exporte le fichier diff pour chaque livraison, qui pourrait fonctionner?

1706voto

Nathan Kinsinger Points 6202

Git pouvez rechercher les différences avec l'option-S (on appelle ça pioche dans les docs)

git log -Spassword

Cela permettra de trouver tout s'engager à ce que ajouté ou retiré de la chaîne "mot de passe". Il y a une regex version.

134voto

cdhowie Points 62253
git rev-list --all | (
    while read revision; do
        git grep -F 'password' $revision
    done
)

68voto

kenorb Points 2464

Essayez les commandes suivantes pour rechercher la chaîne de caractères à l'intérieur de tous les précédents dossiers:

git log --patch  | less +/searching_string

ou

git rev-list --all | GIT_PAGER=cat xargs git grep 'search_string'

qui doit être exécuté à partir du répertoire parent où vous souhaitez faire la recherche.

1voto

Robert Points 3273

Qu'en git grep? Vous pouvez déplacer à travers chaque livraison et vérifiez qu'il. Vous pourriez probablement le même script.

Aussi, n'est-ce pas le référentiel (.git) juste le texte, court des blobs binaires? Ne pouvez-vous pas juste grep qui, normalement, et de faire tout cela à la fois?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X