2015-09-21 19 views
7

Tôi đã tìm ra rằng git clone sử dụng STDERR.git clone ghi vào sderr, tốt nhưng tại sao tôi không thể chuyển hướng đến stdout

Tôi hiện muốn chuyển hướng nó tới STDOUT để sử dụng số hack này.

Tôi đang gặp một số sự cố (ngoài ra, tôi sử dụng thư viện stderred tuyệt vời để tự động tô màu STDERR màu đỏ).

Bạn có thể thấy các vấn đề trong hình đính kèm, không có ý nghĩa với tôi ... hãy làm rõ lý do tại sao điều này xảy ra và cách lấy tất cả đầu ra tới STDERR để tôi có thể sử dụng đúng cách tee.

enter image description here

+0

Bản sao có thể có của [đầu ra git stderr không thể ống] (http://stackoverflow.com/questions/4062862/git-stderr-output-cant-pipe) – kenorb

Trả lời

8

Giống như nhiều tiện ích Unix, git-clone sẽ yên tĩnh hơn nếu nó được chuyển hướng đến một đường ống. Giả định là đầu ra là hữu ích cho một con người và nó sẽ chỉ nhận được trong cách của một chương trình. tee vi phạm giả định này, nhưng git không thể biết những gì ở cuối đường ống.

Từ git-clone manual ...

--progress

tình trạng Progress được báo cáo trên dòng sai số chuẩn theo mặc định khi nó được gắn vào một thiết bị đầu cuối, trừ khi -q được chỉ định. Cờ này buộc trạng thái tiến trình ngay cả khi luồng lỗi chuẩn không được chuyển hướng đến một đầu cuối.

Bạn phải chỉ định git clone --progress để buộc nó thực hiện toàn bộ đầu ra.

+0

Cảm ơn bạn ... Tôi đã khắc phục trường hợp sử dụng này nhưng sau đó tôi nhận thấy rằng 'git push' cũng ghi vào STDERR và cũng' wget' vv .. mục đích là gì, không hiểu ... Tôi đã cài đặt 'stderred' và bây giờ quá nhiều kết quả đầu ra là màu đỏ:/ – davidhq

+0

@DavidKrmpotic Những tiện ích này đang sử dụng STDERR và STDOUT để phân tách nội dung mà con người quan tâm (tiến bộ) từ những gì một chương trình quan tâm (đã làm việc, cái gì đã được chuyển ...). Họ phải đưa ra một số giả định. Rằng ['stderrd'] (https://github.com/sickill/stderred) trông rất tuyệt. Bạn có thể danh sách đen git và wget nếu bạn thích với 'STDERRED_BLACKLIST'. ** HOẶC ** làm cho văn bản bình thường màu xanh lá cây và tận hưởng thiết bị đầu cuối theo chủ đề Giáng sinh của bạn! – Schwern

+0

Tôi không nhận thấy tùy chọn BLACKLIST .... nhưng dù sao, quá nhiều rắc rối, tôi đã ngừng sử dụng 'stderrd' không đủ lợi ích, chỉ là những biến chứng với việc đưa vào danh sách đen rất nhiều công cụ ... cảm ơn sự giúp đỡ của bạn trên câu hỏi chính một lần nữa, thực sự đã giúp – davidhq

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