2012-09-10 32 views
27

Tôi đang sử dụng less làm máy nhắn tin git của mình.Luôn sử dụng máy nhắn tin cho git diff

Nếu đầu ra git diff có thể đọc được trên một trang, git của tôi sẽ in đầu ra màn hình. Đôi khi tôi quá nhanh bằng cách gõ Ctrl+D (giảm một nửa trang), sẽ giết thiết bị đầu cuối của tôi. Có một tùy chọn để kích hoạt máy nhắn tin cho git diff, ngay cả khi đầu ra là rất nhỏ?

Không làm việc:

  • git -p diff
  • git --paginate diff
  • git cài đặt: pager.diff = true

Trả lời

38

này được điều khiển bởi các tùy chọn -F (--quit-if-one-screen) xuống dưới.

Git sử dụng tùy chọn FRSX cho/ít theo mặc định, nếu không có chỉ định nào được chỉ định bởi các biến môi trường $LESS hoặc $GIT_PAGER. Để thay đổi nó, xác định tùy chọn core.pager và đặt nó vào RSX:

git config --global core.pager 'less -+F' 

Cũ hơn phiên bản của Git sử dụng để giới thiệu sau đây trong tài liệu hướng dẫn của họ:

git config --global core.pager 'less -+$LESS -RSX' 
+0

git không sử dụng FRSX theo mặc định . Tôi nghi ngờ bạn đang nhận được những mặc định từ biến môi trường 'LESS', hoặc từ' GIT_PAGER', cho thấy một giải pháp khác (đơn giản hơn). Cụ thể, đảm bảo rằng 'F' không xuất hiện trong' LESS' hoặc trong 'GIT_PAGER'. Nếu git sử dụng mặc định khi PAGER và GIT_PAGER không được đặt, điều đó sẽ làm tôi ngạc nhiên, nhưng có lẽ tôi sai về điều đó. Tài liệu? –

+1

@WilliamPursell: Tài liệu Git gần đây đã được cập nhật để tắt tùy chọn theo cách tương thích ngược hơn. Mã của tôi đã được sao chép trực tiếp từ trang con người (cũ) - tôi đã cập nhật nó ngay bây giờ. Tài liệu cũng viết »Git đặt biến LESS thành FSRX nếu nó chưa được đặt« – knittl

+0

@knittl, bạn có thể tham chiếu đến tài liệu không? thanks – Leonmax