git-钩子预推文档指出,stdin的第一行将使用本地引用和沙值填充,而远程参考和沙码将以如下方式填充:
<local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF
但是,我的简单的预推脚本:
#!/bin/bash
echo "params=[$@]"
read line
echo "stdin=[$line]"
exit 1在运行$git push时返回以下输出:
params=[origin [url]:[branch].git]
stdin=[]
error: failed to push some refs to '[remote]'脚本的参数与文档(远程名称和路径)中指定的参数相同。这个错误是因为我的脚本退出时状态为1。但是,我似乎不明白为什么我没有按照文档指定的方式在stdin上接收本地和远程推荐。
这是git中的一个bug吗?还是,我漏掉了什么?
发布于 2014-03-23 01:03:52
如果这是在说显而易见的话,但是如果没有什么可推送的,那么您就不会在stdin上得到任何线了。示例.git/hooks/pre-push.sample有一个while循环:
IFS=' '
while read local_ref local_sha remote_ref remote_sha
do
...
done当我尝试在这个循环中回音的时候,这似乎是有效的--当我没有什么可推的时候,我什么也得不到,当我做的时候,输出。
https://stackoverflow.com/questions/22585091
复制相似问题