2013-01-19 19 views
15

Khi khắc phục sự cố git của người dùng, tôi tiếp tục chạy vào những người không nhận thấy thông báo lỗi/cảnh báo từ git và sau đó đốt ngón tay của họ. Có cách nào để tô màu lỗi và cảnh báo đầu ra git?Làm cách nào để tô màu các lỗi git, cảnh báo và thông báo gây tử vong?

+1

+1, câu hỏi hay. Hầu hết mọi người chỉ không biết đọc. – fge

+1

Trên hệ điều hành/khách hàng git nào? – DaveShaw

+0

DaveShaw: giao diện điều khiển git client thông thường, trên mọi hệ điều hành. – user1338062

Trả lời

1

Bạn có thể sử dụng phần cấu hình color của git.

Để biết thêm thông tin và ví dụ thấy http://git-scm.com/book/en/Customizing-Git-Git-Configuration#Colors-in-Git hoặc phần thứ hai của http://blog.philippmetzler.com/?p=15

dụ: (thêm vào .gitconfig của bạn)

[color] 
    interactive = always 
[color "interactive"] 
    error = red bold 
+0

Bạn đã tự thử điều này chưa? Bởi vì theo như tôi biết, điều đó không có màu ít nhất là lỗi/gây tử vong. – user1338062

+0

Tôi nghĩ rằng điều này chỉ áp dụng cho những thứ như 'git add --interactive'. – jszakmeister

5

Không có git buit-in cách để làm điều đó. Git chỉ in lỗi tới STDERR và không quan tâm đến mức độ nghiêm trọng của lỗi hoặc bất kỳ điều gì. Những gì bạn có thể làm là màu STDERR màu đỏ. Làm thế nào để làm điều này đã được yêu cầu trên trên ServerFault: https://serverfault.com/questions/59262/bash-print-stderr-in-red-color

Có ba tùy chọn cơ bản:

  1. Chạy lệnh của bạn như thế này:

    *git-command* 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done) 
    
  2. Sử dụng một kịch bản wrapper (Xem ServeFault cho những người đó) và chạy các lệnh như

    mywrapper *git-command* 
    
  3. Cài đặt stderred. Điều này sẽ cho phép bạn thực hiện hiệu ứng vĩnh viễn, mà không cần sửa đổi dòng lệnh của bạn. Bạn không chắc chắn liệu điều này có hoạt động trên các cửa sổ hay không.

+0

Màu 'stderr' màu đỏ không hoạt động đối với tôi: git ghi lại nhiều thứ trong' stderr', không chỉ lỗi. Và một số lỗi là đầu ra ở đầu ra tiêu chuẩn. –

5

Vì tôi không tìm thấy cách phù hợp để gửi thông báo lỗi màu, giải pháp của tôi là thêm cảnh báo bổ sung khi git trả về mã lỗi (! = 0).

Để làm điều đó, thêm video này vào ~/.bashrc hay ~/.bash_profile

# Wrap git. On errors, print an additional line in red. 
git(){ 
    command git "[email protected]" 
    local exitCode=$? 
    if [ $exitCode -ne 0 ]; then 
     printf "\033[0;31mERROR: git exited with code $exitCode\033[0m\n" 
     return $exitCode 
    fi 
} 

đây của bạn là kết quả: enter image description here

Lưu ý rằng màu stderr màu đỏ không hoạt động rất tốt vì bản ghi git nhiều điều trong stderr, không chỉ lỗi. Và một số lỗi là đầu ra ở đầu ra tiêu chuẩn.

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