Git-hooks pre-push文档指出,stdin的第一行将包含本地引用和SHA以及远程引用和SHA,格式如下:
当运行
脚本的参数如文档中所述(远程名称和路径)。预期出现错误,因为我的脚本以 1 的状态退出。但是,我似乎无法弄清楚为什么我没有像文档中规定的那样从 stdin 中接收本地和远程引用。
这是 git 的一个 bug 吗?还是我漏掉了什么?
<local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF
然而,我的简单pre-push脚本:#!/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 吗?还是我漏掉了什么?
stdin
上没有任何输入。如果在原始命令行中添加--force,则stdin
将按预期输入。这仍未记录(不像参数,感谢各位;) - stefanct