J'ai vérifié un code source dans GIT avec le message de validation "Build 0051".
Cependant, je ne semble plus pouvoir trouver ce code source. Comment extraire cette source du référentiel GIT à l'aide de la ligne de commande?
Mise à jour
Mise à jour
Le code source est bien là, maintenant il s’agit de le vérifier:
C:\Source>git log -g --grep="0052"
commit 77b1f718d19e5cf46e2fab8405a9a0859c9c2889
Reflog: HEAD@{10} (unknown <Mike@.(none)>)
Reflog message: commit: 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.
Author: unknown <Mike@.(none)>
Date: Fri Aug 19 17:24:51 2011 +0100
20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.
C:\Source>
Pour rechercher le texte donné dans le journal de validation (dans toutes les branches):
git log --all --grep='Build 0051'
Pour rechercher le contenu réel des commits dans l'historique d'un référentiel, utilisez:
git grep 'Build 0051' $(git rev-list --all)
pour afficher toutes les occurrences du texte donné, le nom du fichier contenant et le commit sha1.
Enfin, en dernier recours, si votre commit est en suspens et n'est pas du tout lié à l'historique, vous pouvez effectuer une recherche dans le journal lui-même avec l'indicateur -g
(raccourci pour --walk-reflogs
:
git log -g --grep='Build 0051'
EDIT: si vous semblez avoir perdu votre historique, vérifiez la reflog
comme votre filet de sécurité. Recherchez la version 0051 dans l’un des commits répertoriés par
git reflog
Vous pouvez simplement avoir défini votre HEAD
sur une partie de l’histoire dans laquelle le commit 'Build 0051' n’est pas visible, ou bien vous l’avez peut-être balayé. L’article gog-ready peut être utile.
Pour récupérer votre commit à partir du reflog : effectuez une vérification git du commit que vous avez trouvé (et créez éventuellement une nouvelle branche ou balise pour référence)
git checkout 77b1f718d19e5cf46e2fab8405a9a0859c9c2889
# alternative, using reflog (see git-ready link provided)
# git checkout HEAD@{10}
git checkout -b build_0051 # make a new branch with the build_0051 as the tip
Je mets ceci dans mon ~/.gitconfig:
[alias]
find = log --pretty=\"format:%Cgreen%H %Cblue%s\" --name-status --grep
Ensuite, je peux taper "git find string" et je reçois une liste de tous les commits contenant cette chaîne dans le message. Par exemple, pour trouver tous les commits référençant le ticket n ° 33:
029a641667d6d92e16deccae7ebdeef792d8336b Added isAttachmentEditable() and isAttachmentViewable() methods. (references #33)
M library/Dbs/Db/Row/Login.php
a1bccdcd29ed29573d2fb799e2a564b5419af2e2 Add permissions checks for attachments of custom strategies. (references #33).
M application/controllers/AttachmentController.php
38c8db557e5ec0963a7292aef0220ad1088f518d Fix permissions. (references #33)
M application/views/scripts/attachment/_row.phtml
041db110859e7259caeffd3fed7a3d7b18a3d564 Fix permissions. (references #33)
M application/views/scripts/attachment/index.phtml
388df3b4faae50f8a8d8beb85750dd0aa67736ed Added getStrategy() method. (references #33)
M library/Dbs/Db/Row/Attachment.php
Bien qu'un peu en retard, il y a :/
qui est la notation dédiée pour spécifier une validation (ou une révision) basée sur le message de validation. Il suffit de préfixer la chaîne de recherche avec :/
, par exemple:
git show :/message
Ici <message>
peut être un motif de regex complexe composé d'espaces, alors assurez-vous de bien citer/échapper si nécessaire, par exemple:
git log -1 -p ":/a few words"
Vous pouvez également spécifier un point de départ pour trouver la validation la plus proche accessible depuis un point spécifique, par exemple:
git show 'HEAD^{/fix nasty bug}'
Voir: manuel de révisions git .
git log --grep=<pattern>
Limit the commits output to ones with log message that matches the
specified pattern (regular expression).
git log --grep="Build 0051"
devrait faire l'affaire
Essaye ça!
git log | grep -b3 "Build 0051"
utilisez d’abord git log --oneline
pour trouver le SHA de la validation (Message), puis j’ai utilisé git log --stat 8zad24d
avec le SHA (le premier exemple de char Sha Cou (8zad24d) )) pour trouver la bonne information