2012-04-10 33 views
7

Tôi đang tìm một cách để có đầu ra theo cách tương tự như ls-tree, nhưng trong thư mục làm việc của tôi. Bất cứ khi nào tôi chạy git ls-tree . nó nói fatal: Not a valid object name .đầu ra git ls-tree của thư mục làm việc?

+0

'git ls-files' có thể với' -m'? – Mikel

+1

git ls-tree -r HEAD –

Trả lời

14

git ls-tree chỉ hoạt động với git refs, ví dụ: ls-tree HEAD.

Hãy thử git ls-files. Bạn có thể muốn các cờ -s và/hoặc -m.


Khi bạn chỉ ra, git ls-files -s sẽ liệt kê các tệp trong chỉ mục (tức là các tệp đã được tổ chức).

Về lý thuyết, bạn có thể gây rối với chỉ mục, chạy git ls-files -s, sau đó thử khôi phục lại, ví dụ:

git commit 
git add . 
git ls-files -s 
git reset . 
git reset --soft HEAD^ 

Có vẻ đúng, và làm việc trong một thử nghiệm đơn giản, nhưng có thể ăn tất cả các tệp của bạn.

+0

Cảm ơn bạn. Tôi nghĩ rằng nói đúng, những gì tôi hỏi là không thể. Lý do là không có đối tượng băm cho các tệp trong thư mục làm việc. Đối với _index_, tuy nhiên, có tất nhiên các đối tượng được băm như bạn đã chỉ ra bằng cách gợi ý cờ '-s'. Đây không phải là chính xác cùng một đầu ra, nhưng tôi không muốn bận tâm làm lại chức năng của các lệnh git khác. :) –

+0

Có vẻ như '-m' không có hiệu ứng mong muốn, như bạn ngụ ý. Tôi đã đi một danh sách các thư mục làm việc chứ không phải là chỉ mục. Xem câu trả lời được cập nhật. Và kiểm tra trước khi thực hiện nó trên dữ liệu thực của bạn. :-) – Mikel

Các vấn đề liên quan