Git-Pensions de recherche de Chaîne de caractères dans tous commis des fichiers inconnu de la branche et de s'engager)
J'ai un morceau de code dans un autre que mon actuel de la branche dans mon repo git, et je ne suis pas sûr de s'engager et de la branche. Comment puis-je effectuer une recherche dans tous les fichiers que j'ai commis jusqu'à présent pour une chaîne spécifique (et par la suite afficher les environs de cette ligne de code)?
- Double Possible: stackoverflow.com/questions/746684/...
Vous devez vous connecter pour publier un commentaire.
Utilisation
git grep
pour localiser le commit:La
git rev-list --all
permet de rechercher l'ensemble de l'historique du projet.Qui donnera une sortie comme celle-ci:
Ensuite, vous pouvez utiliser
git branch --contains
pour savoir quelle branche de la validation est sur:git grep "string" $(git rev-list --all) -- path
.git grep 'abc' echo $(git rev-list --all)
zsh: argument list too long: git
Argument list too long
, vous pouvez utilisergit rev-list --all | xargs git grep 'abc'
: stackoverflow.com/a/49243541/9636Si le
git grep "string"
variation ci-dessus est de vous donner la liste des "trop long" des erreurs, vous pouvez utilisergit log -S
à la place. L'option-S recherche dans le contenu des fichiers qui ont été commis:(Plus dans le "Pro Git" livre sous "la recherche".)
changement à la direction générale
git branch "branch-name"
et puis negit grep "specific string"
dans votre racine du dépôt. si vous n'avez pas trop de branches, ce qui devrait vous permettre d'y parvenir assez rapidement.Si jszakmeister réponse vous donne un
Argument list too long
réponse:Vous pouvez pipe en
xargs
à la place: