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 -r
tù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 HEAD
thay vì master
nhậ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-only
sẽ 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 HEAD
thay vì master
nế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-files
lệ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-files
thay vì git ls-tree -r master --name-only
chắc chắn là đơn giản hơn.
git-ls-files
nhị phân. Có git
nhị phân với ls-files
lệ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-files
vv 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-files
nhị 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 foo
lệnh bằng cách viết git-foo
nhị 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-files
hiể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 gitk
trì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.