2012-06-13 28 views
22

Có lệnh nào có thể lấy một đường dẫn tệp và tệp ref và xuất toàn bộ nội dung của tệp như nó đã cam kết với STDOUT không?Git: toàn bộ tệp để stdout

Ví dụ: Một cái gì đó như thế này:

git show-me-the-file HEAD~2 some/file | do_something_with_piped_output_here 
+3

git cat-file -p HEAD ~ 2: một số/tệp – jthill

+0

Cảm ơn jthill - cũng hoạt động. Làm cho nó một câu trả lời và tôi sẽ bỏ phiếu. – Joel

+0

Đây là những gì tôi đã sử dụng nó cho: meld <(git cat-file -p HEAD: một số/tập tin) <(git cat-file -p master: some/file); Để xem khác biệt của các tập tin trong meld. Có lẽ có một cách tốt hơn để làm điều đó, nhưng nó có vẻ hoạt động tốt. – Joel

Trả lời

38

git show

ví dụ

git show HEAD:./<path_to_file>

+3

the '| cat' là không cần thiết (trừ khi bạn muốn ngăn chặn các máy nhắn tin từ đá vào). –

+0

Dấu ":" quan trọng hoặc bạn sẽ thấy một tệp khác thay vì tệp đầy đủ. –

7

git show <ref spec>:<path> ví dụ, nếu bạn muốn xem một tập tin ở phạm điểm 9be20d1bf62 bạn làm:

git show 9be20d1bf62:a/b/file.txt

nếu bạn muốn xem tập tin trên nói riêng chi nhánh:

git show <branch name>:<path>

2

Bạn muốn git show hoặc git archive cho trường hợp sử dụng này. Lệnh git-show được định hướng nhiều hơn theo hướng gửi tệp đến đầu ra tiêu chuẩn.

# Show .gitignore from revision before this one. 
git show HEAD^:.gitignore 

Phần trước dấu hai chấm là một cây được hình thành theo gitrevisions (7), trong khi nửa sau là đường dẫn tương ứng với đỉnh của cây làm việc git.

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