J'ai vérifié du code source dans GIT avec le message de validation "Build 0051".
Cependant, je n'arrive plus à trouver ce code source - comment puis-je extraire cette source du référentiel GIT, en utilisant la ligne de commande?
Mise à jour
- Vérifié dans les versions 0043, 0044, 0045 et 0046 à l'aide de SmartGIT.
- Récupéré 0043 et archivé dans les versions jusqu'à 0051 sur une autre branche.
- Vérifié à nouveau 0043.
- Maintenant, 0051 a disparu.
Mise à jour
Le code source est définitivement 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>
Réponses:
Pour rechercher dans le journal de validation (dans toutes les branches) le texte donné:
Pour rechercher le contenu réel des validations dans l'historique d'un dépôt, utilisez:
pour afficher toutes les instances du texte donné, le nom du fichier contenant et le commit sha1.
Enfin, en dernier recours, si votre commit est suspendu et n'est pas du tout connecté à l'historique, vous pouvez rechercher le reflog lui-même avec le
-g
drapeau (abréviation de--walk-reflogs
:EDIT: si vous semblez avoir perdu votre historique, vérifiez le
reflog
comme votre filet de sécurité. Recherchez Build 0051 dans l'un des commits répertoriés parVous avez peut-être simplement défini votre
HEAD
dans une partie de l'historique dans laquelle le commit 'Build 0051' n'est pas visible, ou vous l'avez peut-être effacé. L' article de reflog git-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 éventuellement créez une nouvelle branche ou une nouvelle balise pour référence)
la source
git grep 'search' $(git rev-list --all)
, essayezgit rev-list --all | xargs git grep 'search'
Je mets ceci dans mon ~ / .gitconfig:
Ensuite, je peux taper "git find string" et j'obtiens une liste de tous les commits contenant cette chaîne dans le message. Par exemple, pour trouver toutes les validations référençant le ticket # 33:
la source
--pretty=\"format:%Cgreen%H %Cblue%s%Creset\"
find = log --all --pretty=\"format:%Cgreen%H %Cblue%s\n%b%Creset\" --name-status --grep
. Notez les caractères--all
et%b
. Thx @AshleyCoolman pour lareset
pointe.find = log --oneline --name-status -i --grep
Bien qu'un peu en retard, il existe une
:/
notation dédiée pour spécifier une validation (ou révision) basée sur le message de validation, il suffit de préfixer la chaîne de recherche avec:/
, par exemple:Voici
<message>
un modèle d'expression rationnelle complexe composé d'espaces blancs, alors assurez-vous de citer / échapper si nécessaire, par exemple:Alternativement, un point de départ peut être spécifié, pour trouver la validation la plus proche accessible à partir d'un point spécifique, par exemple:
Voir: git revisions manual .
la source
la source
devrait faire l'affaire
la source
Essaye ça!
la source
git grep
place de grep normal et fournir l'--all
indicateur pour rechercher plusieurs branches.git log --all --grep='Build 0051'
(@ réponse de Shelhamer)git log -g
. Vous avez peut-être perdu l'historique dans une réinitialisation, mais vous pouvez toujours vérifier le reflog s'il n'a pas été récupéré.première utilisation
git log --oneline
pour trouver le SHA du commit (Message), puis j'ai utiliségit log --stat 8zad24d
avec le SHA (le premier exemple de couple sha char (8zad24d)) pour trouver la bonne infola source
Cette:
ou ca:
les commandes fonctionnent le mieux pour moi.
la source
Pour rechercher dans toutes les branches
Une fois que vous savez à quel engagement vous souhaitez vous rendre
la source
Si le changement n'est pas trop ancien, vous pouvez le faire,
git reflog
puis extraire l'ID de validation
la source