2013-02-28 23 views
15

Có cách nào sử dụng vimdiff để so sánh phiên bản hiện tại của tệp và cùng một tệp n git phiên bản trước không?vimdiff giữa phiên bản git hiện tại và trước đó của một tệp

Ví dụ, tôi đang làm việc trên các tập tin foo.c trên cành chủ. Tôi muốn làm một vimdiff giữa foo.c và foo.c từ master ~ 10, để sao chép một hoặc hai dòng trên từ phiên bản cũ.

PS Tôi biết về git cherry pick, nhưng đó là cho toàn bộ tệp, không chỉ là một vài dòng.

Trả lời

13

Duh! RTFM. Tôi đã thêm một PPS về điều này không phải là một trường hợp sử dụng cho git difftool, sau đó bắt đầu tự hỏi "chính xác những gì git difftool làm ...".

Giải pháp là:

git difftool master master~10 -- foo.c 

Đó là, giả sử difftool đã được thiết lập một cách chính xác trong ~/.gitconfig:

[diff] 
    tool = vimdiff 
[difftool] 
    prompt = false 
0

Một giải pháp mà làm việc mà không trọng cấu hình git sẽ

vimdiff file.tex <(git show master~2:file.tex)