Git durumunun yalnızca hazırlanmış dosyaları göstermesini sağlama


86

Yalnızca aşamalı dosya adlarının bir listesini almak istiyorum. Komut --name-onlyiçin eşdeğer bayrağı bulamıyorum git status. İyi bir alternatif nedir?

Dosya listesi php -l(PHP lint sözdizimi denetleyicisi) 'ye aktarılacaktır.

Çözüm: Komple komut

git diff --name-only --cached | xargs -l php -l

3
Bu komutu manuel olarak çalıştırıyorsanız, bunu bir ön işleme kancasına koymak isteyebileceğiniz gibi görünüyor. kernel.org/pub/software/scm/git/docs/githooks.html
MatrixFrog

Yanıtlar:


130

Kullanım git diff --name-only(ile --cacheddosyaları sahnelenen almak için)


14

Kabul edilen yanıt, orada ne tür değişikliklerin olduğunu bilmenizi sağlamaz .

Evet, sözdizimi denetleyicisi değil, aşamalı olmayan dosyalarla dolu bir deposu olan sıradan bir kişiyseniz ve yine de hazırlanmış dosyalara ne olacağını bilmek istiyorsanız - başka bir komut daha var:

git status --short | grep '^[MARCD]'

bu da şuna benzer:

M  dir/modified_file
A  dir/new_file
R  dir/renamed -> dir/renamed_to
C  dir/copied_file
D  dir/deleted_file

Açıkçası, bu dosyalar hazırlandı ve sonra git commit:
deleted_filesilinecek,
new_fileeklenecek,
renamed_filebir renamed_to.

Kısa biçimli çıktının açıklaması: https://git-scm.com/docs/git-status#_short_format


1. sürümümde (2.25.0.windows.1) "M" ve "D" 'den önce bir boşluk var . 2. Başka bir durum daha var - "??" Bunu nasıl yorumlayacağımı bilmiyorum.
itsho

@itsho boşluk sahnelenmediğini gösterir. Bu cevap doğrudur çünkü satırdaki ilk karakterle eşleşir. İlk karakter ayarlanmışsa, bu aşamalı bir dosyadır. Bir boşluksa, görmezden gelinir.
Avner

1
Bu dahice! - benzer şey için git bayrağı olmalı
Norfeldt

4

@ Coffman21'in cevabından esinlenerek şu takma adı kurdum.zshrc

alias gst="git status"
alias gst-staged="git status --short | grep '^\w.'"
alias gst-unstaged="git status  --short | grep '^\W.'"
alias gst-unstaged-tracked="git status  --short | grep '^\s.'"
alias gst-untracked="git status --short | grep '^??'"

Başkalarının işine yarayabilir. Yani onu cevap yığınına ekliyoruz.


1
Tutarlı boyama için bir ekleyebilir .gibi hem 2 başlangıçtaki karakter renklendirmek için, grep içinde: grep '^\w.', grep '^\W.',grep '^\s.'
geekley

yine de sonuncusuna gerek yok; zaten iki karaktere sahip??
geekley

Bu şimdi düzeltildi. Tekrar teşekkürler
Norfeldt

0

kod değişiklikleriyle hazırlanmış dosyaları görüntülemek için

git diff --staged   

veya --staged ile eşanlamlı olan --cached kullanarak

git diff --cached

veya yalnızca kod değişiklikleri olmadan dosya adlarını görüntülemek için

git diff --staged --name-only  

git-diff kılavuzu

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.