Jawaban:
Jika Anda ingin mendaftar semua file untuk cabang tertentu, mis. master:
git ls-tree -r master --name-only
Itu -r Opsi akan membiarkannya muncul kembali ke subdirektori dan mencetak setiap file yang saat ini di bawah kendali versi. Anda juga bisa menentukan HEAD dari pada master untuk mendapatkan daftar untuk cabang lain di mana Anda berada.
Jika Anda ingin mendapatkan daftar semua file yang pernah ada, Lihat disini :
log git --pretty = format: --name-status | cut -f2- | semacam -u
git ls-tree -r master --name-only akan melakukan hal yang sama seperti opsi pertama, tanpa perlu cut. Ah, dan Anda bisa menentukan HEAD dari pada master jika Anda hanya ingin daftar ini untuk cabang apa pun yang sedang Anda ikuti.
Itu git ls-files Perintah akan melakukan apa yang Anda butuhkan.
Sumber: http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
git ls-files dari pada git ls-tree -r master --name-only tentu lebih sederhana.
git-ls-files biner. Ada git biner dengan ls-files perintah. Tautan ke dokumentasi benar dalam konten, tetapi secara teknis untuk biner yang ketinggalan zaman.
git-commit, git-init, git-ls-files, dll. meskipun program tersebut sebenarnya adalah sub-perintah. Tidak pernah ada git-ls-files biner, kemungkinan besar. Alasannya adalah bahwa ini konsisten dengan mekanisme sub-perintah eksternal, yang memungkinkan Anda untuk mendaftar a git foo perintah dengan menulis a git-foo biner.
git ls-files hanya akan mencetak file di direktori kerja saat ini.
Jika, misalnya, Anda memiliki repo git untuk dotfiles ( core.worktree = / ), maka Anda akan memiliki file di luar git root dan perintah sederhana itu tidak akan berfungsi lagi.
Singkatnya, ini akan berhasil:
git --git-dir "`git rev-parse --git-dir`" \
-C "`git config core.worktree || pwd`" \
ls-files
Contoh:
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
Jika Anda ingin jalur yang ditentukan relatif ke direktori (shell) Anda saat ini, ini berfungsi:
alias gls='git ls-tree -r master --name-only HEAD "`git config core.worktree`"'
dan dalam contoh di atas, itu akan dicetak
README
../../../etc/ssh/sshd_config
Anda juga dapat menggunakan gitk penampil repositori interaktif.

Silakan lihat gambar, di sebelah kanan ada dua opsi tambalan dan Pohon. Jika Anda memilih pohon, Anda dapat melihat struktur folder untuk setiap komit.