1
votes

grep SHA-1 hash avec préfixe possible

Je veux grep à partir de git submodule status le hachage de validation SHA-1 de mon sous-module. Selon git submodule --help :

statut [--cached] [--recursive] [-] [...]

Afficher l'état des sous-modules. Cela imprimera le SHA-1 du commit actuellement extrait pour chaque submodule, ainsi que le chemin du sous-module et la sortie de git describe pour le SHA-1. Chaque SHA-1 sera éventuellement précédé de - si le sous-module n'est pas initialisé, + si le sous-module actuellement extrait commit ne correspond pas au SHA-1 trouvé dans l'index du référentiel contenant et U si le sous-module a fusionner les conflits.

Le résultat ressemble donc à ceci:

input: +f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1 my-submodule (remotes/origin/HEAD)
desired output: f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1

input: f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1 my-submodule (remotes/origin/HEAD)
desired output: f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1

La description mentionne que chaque hachage sera éventuellement précédé d'un + ou un - . Je ne suis pas intéressé par les signes, et par conséquent, quel que soit le résultat que cela me donne, je veux obtenir le hachage de 40 caractères sans le préfixe.

Exemple:

 f1eeb6aa2a5009b5ef68b5b754499dcb3ab575d1 my-submodule (remotes/origin/HEAD)


0 commentaires

3 Réponses :


1
votes

Vous pouvez utiliser la sortie de git ls-tree :

Au lieu de:

git ls-tree master -- sha1collisiondetection|awk "{print $3}"
855827c583bc30645ba427885caa40c5b81764d2

, vous obtiendrez:

D:\git\git>git ls-tree master -- sha1collisiondetection
160000 commit 855827c583bc30645ba427885caa40c5b81764d2  sha1collisiondetection


0 commentaires

2
votes

Ajoutez l'option -o à votre commande grep.

-o : n'imprime que les parties correspondantes (non vides) d'une ligne correspondante, chacune de ces parties sur une ligne de sortie distincte


0 commentaires

4
votes

Je veux grep à partir de git submodule status le hachage de validation SHA-1 de mon sous-module.

Pourquoi passer par les girations? Demandez simplement ce que vous voulez directement:

git rev-parse :<PATH>

0 commentaires