BİLGİ SAYAMIYORUM beta

Git kullanırken tamamladığınız değişikliklerin (commit) etkilediği tüm dosyalar nasıl listelenir?

0

Proje üstünde çalışırken commit ettiğiniz yani bunları yaptım diye işaretlediğiniz değişiklerin hangi dosyalar üzerinde olduğuna daha sonra bakmak isteyebilirsiniz. Özellikle grup çalışmalarında hash ini bildiğiniz bir commit ile hangi dosyalara müdahele edildiğini merak edeceğiniz durumlar olacaktır. Bunun için birkaç yol var ama en tavsiye edilen yol şudur, diyelim ki commit in hashbb18ss19 olsun:

git diff-tree bb18ss19

Ancak bunu bu şekilde kullanmanız fazla detaylı bir çıktı almanızı sağlar. Belli parametrelerle bu listeyi sadeleştirebilirsiniz:

git diff-tree --name-only bb18ss19
git diff-tree --no-commit-id --name-only -r bb18ss19
git diff-tree --no-commit-id --name-status bb18ss19
git diff-tree --pretty="" --name-only bb18ss19

"--name-only" sadece isimlerin gelmesini sağlar, "--name-status" de benzer bir etki yapar. "--pretty" içinde belirttiğin değer ile temizlemeyi sağlar. "--no-commit-id" commit id lerini temizler, "-r" alt dosyalara da aynı şekilde davranılmasını sağlar. 

Bu işlemi "git show" ile de yapabilirsiniz ancak onun script dosyaları içerisinde kullanılması tavsiye edilmiyor. Terminalde iken onu da şöyle kullanabilirsiniz tabii ki:

git show --stat --oneline bb18ss19
git show --name-only --oneline bb18ss19

İki farklı commit arasında yapılan tüm değişikler için bu bilgiyi almak isterseniz şunu yapabilirsiniz, diyelim ki ikinci commit hash bb18ss20 olsun:

git diff --name-status bb18ss19 bb18ss20
git diff --name-only bb18ss19 bb18ss20

Bir commit içerisindeki tüm dosyaları listelemek isterseniz de şunu yapabilirsiniz, HEAD son değişiklik için önceden tanımlı isimdir, başka sorgularda da kullanabilirsiniz:

git ls-tree --name-only -r bb18ss19
git ls-tree --name-only -r HEAD

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER