我如何摆脱git后接种后返回的每一行上出现的“遥控器:”消息?
-
02-10-2019 - |
题
我已经在git中创建了一个后接种的钩子。挂钩输出消息到屏幕,然后将其发送回GIT客户端,然后输出。
在每一条输出行之前,如何摆脱“遥控器:”文本?这是相当分心的。 (我知道这是可能的,因为我在实践中看到了它,我只是不知道它是如何完成的)
解决方案
注意:前缀对于避免将远程系统中的消息误入本地系统的消息可能很重要。
也就是说,没有办法关闭前缀,但它们都写给了stderr。您可以重定向/捕获/过滤stderr git推 做你想做的事。
一种粗略的做法可能是这样的:
git push ... 2>&1 | sed -e 's/^remote: //'
它将Stdout发送到管道,并使STDERR GOTO成为同一位置。在管道的另一端, sed 读取组合输出并删除任何 remote:
前缀。这应该没关系,因为我们不太可能看到 remote:
Stdout流中的前缀。将类似的stdout和stderr组合在一起,通常可以用于交互式使用(因为它们可能会进入同一TTY设备),但是在自动上下文(例如脚本)中使用可能不是一个好主意。
不隶属于 StackOverflow