2011-01-30 22 views
7

Nói rằng tôi làm theo các bước trong svn:Liệu git có (hoặc cần) tương đương với sửa đổi peg của svn?

rev 1: create a file called 'foo' 
rev 2: delete 'foo' 
rev 3: create a new file called 'foo' 

Nếu tôi muốn xem nội dung của người đầu tiên 'foo' sử dụng svn, tôi sẽ cần phải sử dụng cú pháp peg sửa đổi 'svn cat [email protected]' kể từ cú pháp truyền thống ' svn cat -r 1 foo 'sẽ không thành công.
Tôi đã đọc rằng git theo dõi nội dung chứ không phải tệp, vì vậy điều đó có nghĩa là không cần thiết phải sửa đổi bản sao?

Trả lời

8
git show HEAD~1:/path/tp/foo 

sẽ hiển thị cho bạn những nội dung của tập tin như trong "REV1" (lưu ý: bạn cần phải xác định đường dẫn đầy đủ của tập tin, từ thư mục gốc của repo Git)

Như đề cập đến trong "Restore a deleted file in a Git repo", bạn có thể nhanh chóng khôi phục phiên bản trước của tệp bằng thanh toán.

git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file" 

(với $file là đường dẫn đầy đủ của tập tin từ thư mục gốc của repo Git hiện hành.)

+6

Về cơ bản git luôn luôn làm tương đương với 'svn mèo foo @ 1'. Linus có lẽ sẽ xem xét hành vi của 'svn cat -r 1 foo' để trở thành một trong những thất bại của svn. (Tôi cũng làm như vậy) – Arrowmaster

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