Iščem preprost ukaz git
, ki zagotavlja lepo oblikovan seznam vseh datotek, ki so bile del oddaje, podane z hashem (SHA1), brez nepotrebnih informacij.
Poskusil sem:
git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
Čeprav našteje datoteke, vključuje tudi neželene informacije o razlikah za vsako od njih.
Ali obstaja še kak drug ukaz git
, ki bo zagotovil samo seznam, ki ga želim, tako da ga ne bom moral razčlenjevati iz izpisa git show
?
Primernejši način (ker gre za ukaz za vodovodno napeljavo; namenjen je programiranju):
$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js
Drugi način (manj zaželen za skripte, ker je to plinkovni ukaz; namenjen uporabniku)
$ git show --pretty="" --name-only bd61ad98
index.html
javascript/application.js
javascript/ie6.js
--no-commit-id
se izpis ID-ja revizije izklopi.--pretty
določa prazen oblikovni niz, da se izognemo okoriščanju na začetku.---name-only
prikaže samo imena datotek, ki so bile prizadete (hvala Hanku). Če želite videti, kaj se je zgodilo s posamezno datoteko (Deleted, Modified, Added), namesto tega uporabite --name-status
.-r
je namenjen ponovnemu iskanju v poddrevesihKombinacija "git show --stat
" (hvala Ryan) in nekaj ukazov sed bi vam morala zmanjšati podatke:
git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"
Tako boste dobili samo seznam spremenjenih datotek.