2009-07-23 46 views
75

Làm cách nào để kiểm tra phiên bản cụ thể của một tệp trong git?Làm cách nào để kiểm tra phiên bản cụ thể của một tệp trong Git?

tôi thấy this mail on the mailing list, mà nói:

$ git checkout HEAD~43 Makefile 
$ git reset Makefile 

Nhưng tôi không hiểu làm thế nào để tìm hiểu 'TRỤ ~ 43', nếu tôi làm một git log aFile, làm thế nào tôi có thể tìm ra 'TRỤ ~ 43 'Tôi nên sử dụng?

Và tại sao tôi cần chạy git reset cho tệp đó? Nó làm gì?

+0

"git reset " không chính xác giống như "git checkout ". –

+2

Nếu câu hỏi của bạn về cú pháp HEAD ~ 43 (được viết thành git-rev-parse), hãy hỏi về vấn đề này, không phải về câu hỏi không liên quan bạn biết câu trả lời. "HEAD ~ 45 có nghĩa là gì và cách tìm phiên bản tệp cụ thể" –

+0

theo http://www.lt.kernel.org/pub/software/scm/git/docs/v1.6.0.6/git- checkout.html và http://www.lt.kernel.org/pub/software/scm/git/docs/v1.6.0.6/git-reset.html, "git reset " không thực hiện chính xác giống như "git checkout ": 'git reset ' trở lại trạng trong chỉ mục từ mà không cần chạm trong cây làm việc, nhưng 'git checkout ' cập nhật các chỉ số cho từ và sau đó cập nhật làm việc cây. – yoda

Trả lời

94

Bạn biết cam kết nào (tức là: bản sửa đổi cụ thể) mà tệp đó thuộc về? Sau đó làm:

git checkout <commit> <file> 

Lệnh khác:

git checkout HEAD~N <file> 

là khi bạn muốn có được một phiên bản của tập tin từ một loạt trở lại (mà tôi làm cho nỗi nhớ).

+0

Đây phải là câu trả lời được chấp nhận. – TinkerTenorSoftwareGuy

2

HEAD~43 dùng để chỉ cam kết (phiên bản) của tệp. Thay vào đó, bạn có thể sử dụng băm cam kết mà bạn nhận được từ việc thực hiện git log trên tệp. Nếu bạn chỉ muốn tệp, bạn không cần chạy git reset trên đó; điều đó chỉ cần thiết nếu bạn muốn chuyển tiếp tệp tới HEAD hiện tại.

15

HEAD~43 chỉ là màu xanh, vì vậy bạn có thể sử dụng hàm băm hoặc thẻ. Bạn phải tách riêng cây từ tên tệp với --, nếu không nó được coi là tên tệp. Ví dụ.

git checkout v0.45 -- filename 
git checkout HEAD^ -- filename 
git checkout 16bb1a4eeaa9 -- filename 
Các vấn đề liên quan