2010-05-28 23 views
7

Tôi vừa thực hiện git add --interactive, vì vậy phiên bản chỉ mục của một số tệp khác với phiên bản thư mục làm việc. Thay vì làm git diff --cached, tôi muốn thực sự đổ nội dung của từng tệp trong chỉ mục, nhưng tôi không thể tìm thấy lệnh để làm điều đó. Tôi nên nghĩ rằng sẽ có một cái gì đó như git show INDEX:filename..., nhưng "INDEX" không phải là một tên đối tượng hợp lệ.Làm thế nào để tôi xem phiên bản chỉ mục của một tệp trước khi nó được cam kết?

Tôi đã có thể làm git ls --cached, sau đó git show <hash>, nhưng sẽ có một phương pháp đơn giản hơn để xem bạn đang cam kết gì.

+0

tại sao không thử git gui? – corroded

Trả lời

17

Vâng, chỉ đơn giản là:

git show :filename 

Nếu bạn có nhiều phiên chỉ số (ví dụ như trong một tình huống xung đột merge), bạn có thể xem các phiên bản trong khe chỉ số khác nhau với:

git show :1:filename 
git show :2:filename 
git show :3:filename 

Trong hầu hết các khác các tình huống chỉ khe 0 được điền và :0:filename là số nhận dạng cho phiên bản được lưu trong bộ nhớ cache của tệp. :filename là viết tắt của :0:filename.

3

Nếu bạn muốn kiểm tra phiên bản của dự án mà bạn đã cất giấu trong chỉ mục, bạn có thể sử dụng git stash --keep-index (xem "kiểm tra một phần cam kết" trong git-stash manpage).

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