Git'teki her düzeltme için her dosyayı nasıl listeleyebilirim (Mercurial'ın hg manifest --all gibi)?


10

Mercurial, deponun her düzeltme için sahip olduğu her dosyayı listeleme komutuna sahiptir:

hg manifest --all

Git'te eşdeğer bir komut var mı?


Git log --stat gibi bir şey mi?
jmreicha

4
git ls-files?
NN

Sadece merak ediyorum, hangi sebepten dolayı buna ihtiyacınız var?
Stephen Jennings

@StephenJennings: sürüm kontrolü altında ne tür dosyaların olduğunu zihinsel olarak " ls -Reksi .gitignore" yapmaktan daha iyi bir şekilde öğrenebilirsiniz . Genel olarak kullanışlılık: az ya da çok ne olup bittiğini bilebilir, ancak deponun içgözlemi kişinin bildiğine bir güven verir . Özellikle yeni başlayan kullanıcılar için, bu güven, programın ne kadar keyifli kullanılacağı konusunda büyük bir fark yaratır. Git, kullanıcılarına güven vermeyi bir öncelik haline getirmez, bu yüzden birçok insan öğrenene kadar anlaşılır bir şekilde nefret eder.
Esteis

Yanıtlar:


3

Kabuk betiklerinde kesinlikle berbatım, bu yüzden kesinlikle alt optimal, ama bash kullandığınızı varsayarsak, bu tür bir şey sizin için yapabilir. Umarım başka biri gelip temizleyebilir veya daha iyi bir şeyle değiştirebilir. Sadece Mac bilgisayarımda test ettim, bu yüzden dikkat et.

Geçerli HEAD'in atası olan tüm dosyaları komutlara yazdırmalıdır. Dosyayı yolunuzda bir manifest.shyerde bulunan bir dosyaya kaydedin:

#!/bin/bash

TFILE=$(mktemp -t git-manifest)

for sha in $(git log --pretty=format:%H)
do
    git ls-tree --name-only --full-tree -r $sha >> $TFILE
done

sort -u $TFILE
rm $TFILE

1
Gerek yok exportçocuğun süreçlerinde kullanılabilir olması gerekmez çünkü. Döngü SHA karmalarının üzerindeyse, döngü gayet iyi çalışır, aksi takdirde readdeğişkeni kullanan ve alıntılayan bir şey daha iyi olur. sortne yapan bir -useçenek var uniq. rmYarıya kadar iptal ettiğinizde dosya d almaz , bunun trapiçin bir gerekir , ancak bu komut dosyası için muhtemelen aşırı olur.
Daniel Beck

@DanielBeck: Teşekkürler, biraz güncelledim. mktempGit Bash'te mevcut değil, bununla başa çıkmanın bir yolunu bulmalıyım, böylece Windows da oynayabilir.
Stephen Jennings
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.