2012-03-28 13 views

cevap

7

Birbirinize göre neyi kastettiğinizden emin değilim, ancak tek tek bir giriş istiyorsanız (örneğin, tüm değiştirilmiş dosyalar) git ls-files doğru bayraklarla kullanabilirsiniz (değiştirilmiş dosyalar için -m'dur). Tüm bu bilgileri bir kerede istiyorsanız, durumun komut dosyası ile ayrıştırılabilir bir çıktısını almak için git status --porcelain'u kullanabilirsiniz.

+0

Git durumu, uzak repo'ya eklenen yeni dizinleri/dosyaları listelemiyor. Yapar ? – Jean

+0

@alertjean: "Yeni" ile ne demek istiyorsun? Onlar takip edilmiyor mu? Eklediler ama kararlı değiller mi? Onlar neler? –

+0

Teşekkürler, bu sadece aradığım şey. Şimdi yapabilirim örn. geany $ (git ls-files -m) ' – mwfearnley

9

Ne muhtemelen istediğiniz gibi bir şey:

git fetch  # update what you know about the remote repo 
git diff --name-status master origin/master 

Ama sorunuzun gelen diff istiyorum tam olarak ne dallar anlatmak oldukça zordur. Bunu yapmak için

7

Tek yön whatchanged komutla geçerli:

$ git whatchanged 

Bu, her ağaçta taahhüt ve yanı özelliklerini bakmak için kullanılabilir değişti dosyaları hangi gösterir. Örneğin git durumunu --porcelain

kullanıyor git help whatchanged

23

bu dosyayı listelemek için en iyi yolu bir göz atın: önce silinmiş dosyaları kaldırmak için:

git status --porcelain | awk 'match($1, "D"){print $2}' | xargs git rm 
+0

Son boruyu en sonunda çıkarmak, hangi dosyaların silindiğini listelemek için iyi bir yoldur. Çok uzun gitme durumunuz varsa ve belirli bir duruma filtre uygulamak istiyorsanız, yardımcı olur. – IanVS

5

kullanın kuru işletilen (git add ait -n) seçeneği: komutu 01 ile

git add -A -n

+0

yup, istediğim bu! – Doug

1

kullanımı etiketleri ile

örnek: kaydedilmesini ile

git diff v1.0.1 v1.0.2 --name-status 

örnek:

git diff b79810fc4d be69e41d1c --name-status 

onların durumları ile tüm güncel dosyaları listeler: M - D modifiye - A silindi - eklendi

0

To Sadece şu anda değişmiş dosyaların isimleri ve statüsünü dosya olsun basitçe yapabilirsiniz:

git diff --name-status

Böyle çıplak çıktı alacak: Artık

M  a.txt 
M  b.txt 

, boru cut çıkış ayıklamak için ikinci sütun:

git diff --name-status | cut -f2

Sonra sadece dosya adları gerekecek:

a.txt 
b.txt 
İlgili konular