2013-10-14 19 views
10

Dosyaları değişiklik zamanlarına göre sıralı olarak nasıl listeleyebilirim?git ls-files değiştirme süresine göre sırala

Git değiştirme zamanını, sistem değişiklik zamanını değil. Örneğin, ben bir (taahhüt) varsa sistem modifikasyonu dönemde değişecek sonra

touch README 

, README dosya ... ama git durumu değişmeden kalacaktır. Ben

git ls-files -z | xargs -0 ls -t 

çalışırsanız

bu sistem modifikasyonu zaman sıralanır.

git ls-files için, git değiştirme süresine göre sıralanan dosyaları listeleyecek bir seçenek var mı?

cevap

15

onların git modifikasyon zamana göre sıralı dosyaları listelemek istiyorum git ls-files için herhangi bir seçenek var mı?

ben öyle düşünmüyorum. Bir olası yolu, dosyalar üzerinde yineleme yapmak, git log ve sort çıkışını kullanarak zaman damgasını almak olabilir.

aşağıdakiler sizin için işe yarayabilecek:

while read file; do echo $(git log --pretty=format:%ad -n 1 --date=raw -- $file) $file; done < <(git ls-tree -r --name-only HEAD) | sort -k1,1n 
2

Ben aşağıdaki komutu

git ls-files -z -- "${dir}" | xargs -0 -n1 -I{} -- git log -1 --format="%at {}" {} | sort | tail -n1 | cut -d " " -f2- 
kullanarak bir klasördeki dosyaları sıralamak başardı