Ottenere la lista di tutti i file in un commit

di Lorenzo Neri

Come si può ottenere la lista di tutti i file in un commit? In questo articolo cerchiamo di capire i passi giusti per farlo.

Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!

Immagina di poter avere un comando in git che ti dia una lista di tutti i file presenti in un commit ben formattata, senza informazioni superflue: come fare?

Consideriamo un punto a nostro favore.

I commit all’interno di git, sono tutti quanti identificati da un un hash univoco.

Questo significa che, grazie allo hash in SHA1 possiamo distinguere un commit dall’altro.

Bene, devi sapere che c’è un comando che ti permette di avere una lista in un commit:

git show codice_hash_del_commit

Qual è il problema di questa soluzione “a metà” se così si può definire?

Il comando “git show”, seguito dall’opportuno codice “sha” del commit stesso, ti mostra anche informazioni non desiderate: come ad esempio il diff.

Perciò, esiste una soluzione che funzioni al 100%?

Certo, ma è un po’ complicata: ma tranquillo, ora te la spiego!

Come ottenere la lista dei file pulita come vogliamo noi

Per spiegarti come ottenere la lista pulita e leggibile, prima ti mostro il comando incasinato poi te lo spiego 😀

Il comando si struttura così:

git diff-tree --no-commit-id --name-only -r codice_hash_del_commit

E se lo provi, otterrai una lista dei file ben formattata e pulita come vuoi tu!

… Prima ho mentito: c’è anche una seconda strada.

Ma prima te la mostro, poi ti spiego tutto: promesso!

Il secondo modo per ottenere la lista senza fronzoli

Vuoi la tua list file del commit? Ecco il secondo modo per averla:

git show --pretty="" --name-only codice_hash_del_commit

Ti sei accorto però, che questo comando necessita di uscire in seguito e NON stampa a video nella CLI direttamente vero?

Ok beh, parliamo dei vari flag che ho usato in entrambi i comandi.

“–no-commit-id” serve a togliere l’ID del commit stesso dall’output.

–“pretty” specifica di togliere dall’inizio della stringa di togliere eventuali parametri non desiderati a CLI.

“–name-only” serve a mostrare SOLO i nomi dei file!

“–name-status” invece, ti mostra COSA è successo ad ogni file nel commit. Per intenderci: Deleted, Modified, Added.

Infine, il flag “-r” serve per eseguire la ricorsione nei sub-tree.

Alla fine nonostante i comandi a CLI, per cui ho scritto un altro articolo, possano essere strambi ci permettono in pochi passi di fare tanto: come appunto ottenere la lista di tutti i file in un commit!

Continua a scoprire di più con questi articoli!

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più