Câu trả lời:
Nếu bạn muốn liệt kê tất cả các tệp cho một nhánh cụ thể, ví dụ master:
git ls-cây -r chủ - chỉ tên
Các -rtùy chọn sẽ cho phép nó recurse vào thư mục con và in mỗi tập tin hiện dưới sự kiểm soát phiên bản. Bạn cũng có thể chỉ định HEADthay vì masternhận danh sách cho bất kỳ chi nhánh nào khác mà bạn có thể tham gia.
Nếu bạn muốn có một danh sách tất cả các tệp đã tồn tại, xem tại đây :
git log --pretty = format: --name-only --diff-filter = A | sắp xếp
git ls-tree -r master --name-onlysẽ làm tương tự như tùy chọn đầu tiên, mà không cần cut. Ah, và bạn có thể chỉ định HEADthay vì masternếu bạn chỉ muốn danh sách này cho bất kỳ chi nhánh nào bạn hiện đang ở.
-? Nó khiến một số dòng bổ sung hiển thị một số tệp trong cột thứ hai được lặp lại từ cột đầu tiên.
Các git ls-fileslệnh sẽ làm những gì bạn cần.
Nguồn: http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html
git ls-filesthay vì git ls-tree -r master --name-onlychắc chắn là đơn giản hơn.
git-ls-filesnhị phân. Có gitnhị phân với ls-fileslệnh. Liên kết đến tài liệu là chính xác trong nội dung, nhưng về mặt kỹ thuật cho một nhị phân lỗi thời.
git-commit, git-init, git-ls-filesvv mặc dù các chương trình đang thực sự lệnh con. Không bao giờ có một git-ls-filesnhị phân, rất có thể. Lý do là nó phù hợp với cơ chế tiểu ban bên ngoài, cho phép bạn đăng ký một git foolệnh bằng cách viết git-foonhị phân.
git ls-files sẽ chỉ in các tập tin trong thư mục làm việc hiện tại.
Ví dụ, nếu bạn có một git repo cho dotfiles ( core.worktree = /), thì bạn sẽ có các tệp bên ngoài gốc git và lệnh đơn giản đó sẽ không hoạt động nữa.
Nói tóm lại, điều này sẽ hoạt động:
git --git-dir "`git rev-parse --git-dir`" \
-C "`git config core.worktree || pwd`" \
ls-files
Thí dụ:
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
Nếu bạn muốn các đường dẫn được chỉ định liên quan đến thư mục (shell) hiện tại của bạn, thì đây là công việc:
alias gls='git ls-tree -r master --name-only HEAD "`git config core.worktree`"'
và trong ví dụ trên, nó sẽ in
README
../../../etc/ssh/sshd_config
git ls-fileshiển thị tất cả trong thư mục hiện tại và bên dưới. Nó chỉ không hiển thị các tập tin đã bị xóa trong repo.
Bạn cũng có thể sử dụng gitktrình xem kho lưu trữ tương tác.

Xin vui lòng xem hình ảnh, ở bên phải có hai tùy chọn vá và Cây. Nếu bạn chọn cây, bạn có thể xem cấu trúc thư mục cho mỗi lần xác nhận.