- Tìm kiếm một lệnh giống như
ls -R
hoặcdir/s
có thể liệt kê tất cả các tệp trong một cam kết / nhánh. - Có lệnh nào có thể so sánh hai tệp từ các nhánh khác nhau không?
Câu trả lời:
git ls-tree -r --name-only <commit>
(ở đâu thay vì <commit>
có thể có <branch>
). -t
tùy chọn liệt kê các thư mục con trước khi giảm dần vào chúnggit diff <branchA>:<fileA> <branchB>:<fileB>
, git diff <branchA> <branchB> -- <file>
Để so sánh cùng một tệp từ các nhánh khác nhau:
git diff branch_1..branch_2 file.txt
Để liệt kê tất cả các tệp trong một đối tượng cây:
git ls-tree -r branch
ls
, bạn đã quên -tree
ở cuối dòng :)
Để liệt kê tất cả các tệp được thêm vào nhánh mới
git diff --name-only branch1 master
Để liệt kê, bạn có thể sử dụng git ls-files
để liệt kê tất cả các tệp một cách đệ quy trong thư mục chỉ mục / làm việc hiện tại. Bạn có thể tham khảo Git-SCM Docs / git-ls-files hoặc nhập man git-ls-files
nếu bạn đã cài đặt Git và có sẵn trang nam.
Nó có tùy chọn tốt đẹp để hiển thị tập tin theo nhiều cách khác nhau như cached
, staged
, deleted
, modified
, ignored
hoặc others
cho được theo dõi. Nó cũng hỗ trợ các mẫu phù hợp. Có còn là một --debug
arg, bạn có thể dễ dàng liệt kê creation time
, modification time
, inode id
, owner & group id
, size
và flags
cho các tập tin.
Đối với sự khác biệt của hai nhánh, chỉ cần sử dụng git diff <branch> <other branch>
như đã nêu trong các câu trả lời khác.
git ls-files
git ls-files
mô tả trong tài liệu git-scm :# Switch to <branch> of interest
$ git checkout <branch>
# List all files in <branch>
$ git ls-files
Để biết thêm các tùy chọn, hãy kiểm tra tài liệu .