كيف يمكنني التخلص من الرسائل "عن بُعد:" التي تظهر على كل سطر يتم إرجاعه بواسطة ما بعد الاستقبال في Git؟

StackOverflow https://stackoverflow.com/questions/3170337

  •  02-10-2019
  •  | 
  •  

سؤال

لقد قمت بإنشاء خطاف ما بعد الاسترداد في git. رسائل إخراج الخطاف على الشاشة ، والتي يتم إرسالها مرة أخرى إلى عميل GIT للقيام بالدفع ، وإخراجها مرة أخرى.

كيف يمكنني التخلص من النص "عن بُعد:" قبل كل سطر من الإخراج؟ إنه مشتت إلى حد ما. (أعلم أن هذا ممكن لأنني رأيته في الممارسة العملية ، لا أعرف كيف يتم ذلك.)

هل كانت مفيدة؟

المحلول

ملاحظة: يمكن أن تكون البادئة مهمة لتجنب خطأ الرسائل من النظام البعيد كرسائل من النظام المحلي.

ومع ذلك ، لا توجد طريقة لإيقاف البادئة ، لكن يتم كتابتها جميعًا إلى Stderr. يمكنك إعادة توجيه/التقاط/تصفية Stderr من دفع Git لفعل ما تريد.

قد تكون هناك طريقة تقريبية للقيام بذلك:

git push ... 2>&1 | sed -e 's/^remote: //'

يرسل stdout إلى أنبوب ويجعل stderr goto في نفس المكان. في الطرف الآخر من الأنبوب ، سيد يقرأ الإخراج المشترك ويحذف أي remote: البادئات. يجب أن يكون هذا على ما يرام لأنه من غير المحتمل أن نرى remote: البادئات في تيار stdout. إن الجمع بين stdout و stderr مثل هذا أمر مقبول بشكل عام للاستخدام التفاعلي (لأنهم ربما كانوا يذهبون إلى نفس الجهاز tty على أي حال) ، ولكن قد لا يكون فكرة جيدة للاستخدام في السياقات الآلية (على سبيل المثال).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top