Yanıtlar:
Belirli bir dal için tüm dosyaları listelemek istiyorsanız, örneğin master:
git ls-tree -r ana - sadece isim
Bu -rseçenek, alt dizinlere girmesine ve halihazırda sürüm kontrolü altında bulunan her dosyayı yazdırmasına izin verecektir. İçinde bulunduğunuz diğer tüm şubelerin listesini almak HEADyerine de belirtebilirsiniz master.
Var olan tüm dosyaların bir listesini almak istiyorsanız, buraya bakın :
git günlüğü --pretty = biçim: --name-only --diff-filter = A | sıralama
git ls-tree -r master --name-onlygerek olmadan ilk seçenekle aynı şeyi yapacağını unutmayın cut. Ah ve belirtebilirsiniz HEADyerine mastersadece şu anda üzerinde ne olursa olsun şube için bu listeyi istiyorum.
-? Bazı ek satırların bazı dosyaları ilkinden tekrarlanan ikinci bir sütunda göstermesine neden olur.
git ls-filesKomut neye ihtiyacınız yapacağız.
Kaynak: http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
git ls-filesyerine git ls-tree -r master --name-onlykesinlikle basittir.
git-ls-filesikili yoktur . Orada gitile ikili ls-fileskomutu. Belgelere bağlantı içeriğinde doğru, ancak teknik olarak eski bir ikili için.
git-commit, git-init, git-ls-filesvb programlar aslında alt komutları olmasına rağmen. git-ls-filesBüyük olasılıkla hiçbir zaman bir ikili dosya olmadı . Bunun nedeni, ikili git fookomut yazarak bir komut kaydetmenize olanak sağlayan harici alt komut mekanizması ile tutarlı olmasıdır git-foo.
git ls-files sadece geçerli çalışma dizinindeki dosyaları basacaktır.
Örneğin, dotfiles ( core.worktree = /) için bir git repo varsa, git root'un dışında dosyalar olacak ve bu basit komut artık işe yaramayacak.
Kısacası, bu işe yarayacak:
git --git-dir "`git rev-parse --git-dir`" \
-C "`git config core.worktree || pwd`" \
ls-files
Örnek:
mkdir ~/dotfiles
cd ~/dotfiles
git config core.worktree /
# Ignore all files by default, else Git will find all files under "/"
echo "*" > .git/info/exclude
# Add files at the git repo's root and somewhere in the work tree
touch README
git add -f README
git add -f /etc/ssh/sshd_config
# `git status` would now print:
# new file: ../../../etc/ssh/sshd_config
# new file: README
git status
git commit -m "Initial commit"
# At this point, `git ls-files` prints only:
# README
git ls-files
# But you can print all files inside the work tree. This will print:
# etc/ssh/sshd_config
# home/yourusername/dotfiles/README
git --git-dir "`git rev-parse --git-dir`" -C "`git config core.worktree || pwd`" ls-files
Geçerli (kabuk) dizininize göre belirtilen yolları istiyorsanız , bu işi yapar:
alias gls='git ls-tree -r master --name-only HEAD "`git config core.worktree`"'
ve yukarıdaki örnekte yazdıracaktı
README
../../../etc/ssh/sshd_config
git ls-fileshepsini geçerli dizinde ve altında gösterir. Sadece depoda silinen dosyaları göstermiyor.
gitkEtkileşimli havuz görüntüleyicisini de kullanabilirsiniz .

Lütfen resme bir bakın, sağ tarafta iki seçenek yaması ve Ağaç var. Ağaç seçerseniz, her bir işlem için klasör yapısını görüntüleyebilirsiniz.