首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git-hooks预推脚本不会通过STDIN接收输入。

Git-hooks预推脚本不会通过STDIN接收输入。
EN

Stack Overflow用户
提问于 2014-03-22 23:34:35
回答 1查看 2.3K关注 0票数 8

git-钩子预推文档指出,stdin的第一行将使用本地引用和沙值填充,而远程参考和沙码将以如下方式填充:

<local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF

但是,我的简单的预推脚本:

代码语言:javascript
复制
#!/bin/bash

echo "params=[$@]"

read line
echo "stdin=[$line]"

exit 1

在运行$git push时返回以下输出:

代码语言:javascript
复制
params=[origin [url]:[branch].git]
stdin=[]
error: failed to push some refs to '[remote]'

脚本的参数与文档(远程名称和路径)中指定的参数相同。这个错误是因为我的脚本退出时状态为1。但是,我似乎不明白为什么我没有按照文档指定的方式在stdin上接收本地和远程推荐。

这是git中的一个bug吗?还是,我漏掉了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-23 01:03:52

如果这是在说显而易见的话,但是如果没有什么可推送的,那么您就不会在stdin上得到任何线了。示例.git/hooks/pre-push.sample有一个while循环:

代码语言:javascript
复制
IFS=' '
while read local_ref local_sha remote_ref remote_sha
do
    ...
done

当我尝试在这个循环中回音的时候,这似乎是有效的--当我没有什么可推的时候,我什么也得不到,当我做的时候,输出。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22585091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档