- Tìm kiếm một lệnh giống như
ls -Rhoặcdir/scó 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>). -ttù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-filesnế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, ignoredhoặc otherscho được theo dõi. Nó cũng hỗ trợ các mẫu phù hợp. Có còn là một --debugarg, bạn có thể dễ dàng liệt kê creation time, modification time, inode id, owner & group id, sizevà flagscho 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-filesgit ls-filesmô 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 .