2016-03-23 1 views
2

Je voudrais joindre une note à un objet arbre. Cependant, pour ce faire, je dois d'abord connaître le hachage de l'objet arbre. Pour un nom de répertoire donné qui fait partie de mon référentiel, comment puis-je obtenir le hachage de l'objet de son arbre d'appartenance pour y attacher une note?Comment obtenir le hachage d'arbre pour un nom de répertoire donné?

De la lecture this answer Je comprends que je pouvais utiliser

git cat-file -p master^{tree} 

à la liste du contenu de l'arbre racine, mais je dois encore grep la sortie pour le nom du répertoire, et suivre des objets d'arbres imbriqués récursive pour obtenir le hachage de l'objet arbre pour un répertoire plus profond dans la hiérarchie.

Fondamentalement, je suis à la recherche pour la mise en œuvre d'un script get-tree-hash.sh fictif. Si elle est appelée comme

get-tree-hash.sh path/to/directory/in/my/git/repo 

devrait alors afficher

The hash for the "repo" tree inside "path/to/directory/in/my/git" is: 
92a68a2f5560fa7080393b633e2afd1d5271deef 

Répondre

4

Juste moi-même pensé à elle,

git ls-tree HEAD -- path/to/directory/in/my/git | cut -d' ' -f3 | cut -f1 

fait ce que je veux.

+0

Comme je l'ai mentionné dans ma réponse, vous pouvez également utiliser 'ls-fichiers -s' ainsi – CodeWizard

+0

Comment fonctionne' -s' aider ici? Je ne suis pas intéressé par le contenu mis en scène. – sschuberth

+0

D'accord, je vous ai mal compris d'abord. – CodeWizard