Liệt kê các tập tin trong repo git cục bộ?


347

Tôi đang sử dụng Spark Meatare, sử dụng Git để đồng bộ hóa các tệp giữa máy tính xách tay và máy chủ dự phòng của tôi.

Bây giờ tôi muốn có thể duyệt các tệp và thư mục mà tôi đã tải lên máy chủ của mình, nhưng tôi không biết làm thế nào?

Tôi hiểu rằng Git sử dụng một số loại phân cấp tệp đặc biệt và tôi không thể chỉ liệt kê các tệp của mình, phải không?

Nhưng làm thế nào tôi phải làm gì để liệt kê chúng và duyệt các tập tin của tôi?

Câu trả lời:


567

Lệnh này:

git ls-tree --full-tree -r --name-only HEAD

liệt kê tất cả các tệp đã cam kết đang được theo dõi bởi repo git của bạn.


338

Hãy thử lệnh này:

git ls-files 

Điều này liệt kê tất cả các tệp trong kho lưu trữ, bao gồm cả những tệp chỉ được dàn dựng nhưng chưa được cam kết.

http://www.kernel.org/pub/software/scm/git/docs/git-ls-files.html


3
Đầu ra giống như câu trả lời ở trên, nhưng chỉ có --name (Định dạng ngắn). Đồ sứ đẹp.
Ron E

21
Một điều cần lưu ý: câu trả lời được chấp nhận hoạt động trên một repo trần, nhưng câu trả lời này thì không.
Trebor Rude

1
Lệnh Git này làm cho đầu ra sạch hơn nhiều và lý tưởng nếu bạn chỉ muốn danh sách các tệp được theo dõi bởi Git.
mico

Có cách nào để liệt kê chỉ direcotries .. một cái gì đó như thế git ls-directories nào?
Ramesh Pareek

12
Cảnh báo: nếu bạn đang ở trong thư mục con, nó chỉ liệt kê các tệp trong cây đó - câu hỏi cho biết "tất cả các tệp trong kho lưu trữ" nhưng điều đó chỉ đúng nếu bạn nằm trong thư mục gốc của repo.
wim

2

git ls-tree --full-tree -r HEADgit ls-filestrả lại tất cả các tập tin cùng một lúc. Đối với một dự án lớn với hàng trăm hoặc hàng ngàn tệp và nếu bạn quan tâm đến một tệp / thư mục cụ thể, bạn có thể thấy thuận tiện hơn để khám phá các thư mục cụ thể. Bạn có thể làm điều đó bằng cách lấy ID / SHA-1 của thư mục mà bạn muốn khám phá và sau đó sử dụng git cat-file -p [ID/SHA-1 of directory]. Ví dụ:

git cat-file -p 14032aabd85b43a058cfc7025dd4fa9dd325ea97
100644 blob b93a4953fff68df523aa7656497ee339d6026d64    glyphicons-halflings-regular.eot
100644 blob 94fb5490a2ed10b2c69a4a567a4fd2e4f706d841    glyphicons-halflings-regular.svg
100644 blob 1413fc609ab6f21774de0cb7e01360095584f65b    glyphicons-halflings-regular.ttf
100644 blob 9e612858f802245ddcbf59788a0db942224bab35    glyphicons-halflings-regular.woff
100644 blob 64539b54c3751a6d9adb44c8e3a45ba5a73b77f0    glyphicons-halflings-regular.woff2

Trong ví dụ trên, 14032aabd85b43a058cfc7025dd4fa9dd325ea97là ID / SHA-1 của thư mục mà tôi muốn khám phá. Trong trường hợp này, kết quả là bốn tệp trong thư mục đó đã được theo dõi bởi repo Git của tôi. Nếu thư mục có các tệp bổ sung, điều đó có nghĩa là các tệp bổ sung đó không được theo dõi. Bạn có thể thêm các tập tin bằng cách sử dụng git add <file>...tất nhiên.


Bạn cũng có thể chỉ cdvào thư mục mà bạn quan tâm và bỏ qua --full-tree.
Nathan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.