Bir hash (SHA1) ile verilen işlemin parçası olan tüm dosyaların güzel bir şekilde biçimlendirilmiş bir listesini sağlayan, gereksiz bilgi içermeyen basit bir git
komutu arıyorum.
Denedim:
git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
Dosyaları listelemesine rağmen, her biri için istenmeyen fark bilgilerini de içerir.
Sadece istediğim listeyi sağlayacak, böylece git show
çıktısından ayrıştırmaktan kaçınabileceğim başka bir git
komutu var mı?
Tercih Edilen Yol (çünkü bu bir tesisat komutudur; programatik olması amaçlanmıştır):
$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js
Başka Bir Yol (komut dosyaları için daha az tercih edilir, çünkü bu bir porcelain komutudur; kullanıcıya yönelik olması amaçlanmıştır)
$ git show --pretty="" --name-only bd61ad98
index.html
javascript/application.js
javascript/ie6.js
--pretty
argümanı, başlangıçtaki karışıklığı önlemek için boş bir format dizesi belirtir.--name-only
argümanı sadece etkilenen dosya isimlerini gösterir (Teşekkürler Hank). Her dosyaya ne olduğunu görmek istiyorsanız bunun yerine --name-status
kullanın (Deleted, Modified, Added)"git show --stat
" (teşekkürler Ryan) ve birkaç sed komutunun bir kombinasyonu verileri sizin için kırpacaktır:
git show --stat <SHA1> | sed -n "/ [\w]\*|/p" | sed "s/|.\*$//"
Bu sadece değiştirilen dosyaların listesini üretecektir.