Kako našteti vse datoteke v oddaji?

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?

Rešitev

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

  • Z --no-commit-id se izpis ID-ja revizije izklopi.
  • Argument --pretty določa prazen oblikovni niz, da se izognemo okoriščanju na začetku.
  • Argument ---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.
  • Argument -r je namenjen ponovnemu iskanju v poddrevesih
Komentarji (24)

Predvidevam, da gitk za to ni zaželen. V tem primeru poskusite git show --name-only.

Komentarji (3)

Kombinacija "git show --stat" (hvala Ryan) in nekaj ukazov sed bi vam morala zmanjšati podatke:

git show --stat  | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"

Tako boste dobili samo seznam spremenjenih datotek.

Komentarji (0)