2012-04-10 12 views

cevap

14

git ls-tree sadece git refs ile çalışır, örn. ls-tree HEAD.

git ls-files'u deneyin. Muhtemelen -s ve/veya -m bayraklarını tercih edebilirsiniz. Eğer işaret olarak


, git ls-files -s (sahnelenen edilmiştir yani dosyaları) endeksinde dosyaları listeler.

Teoride, dizini bozabilir, git ls-files -s'u çalıştırabilir ve sonra geri yüklemeyi deneyin, örn.

git commit 
git add . 
git ls-files -s 
git reset . 
git reset --soft HEAD^ 

Doğru görünüyor ve basit bir sınamada çalıştı, ancak tüm dosyalarınızı yiyebiliyordu.

+0

Teşekkür ederiz. Bence düzgün konuşma, istediğim şey imkansız. Bunun nedeni, çalışma dizinindeki dosyalar için karma nesne olmamasıdır. Bununla birlikte, _index_ için, '-s 'bayrağı önererek işaret ettiğiniz gibi, elbette ki nesneler vardır. Bu tam olarak aynı çıktı değil, ama diğer git komutlarının işlevselliğini yeniden canlandırmak istemiyorum. :) –

+0

Görünüşe göre, istediğin gibi -m'nin istenen etkiye sahip olmadığı anlaşılıyor. Endeks yerine çalışma dizinini listelemeye başladım. Güncellenmiş cevaba bakınız. Ve gerçek verilerinizden önce test edin. :-) – Mikel