gpt4 book ai didi

linux - 无法在 bash 中获得正确的 git 分支名称

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:57 26 4
gpt4 key购买 nike

我正在处理我的 git 服务器的后接收,以便它自动将我网站的最新版本上传到一个以提交所在的分支命名的文件夹中,但不知何故执行此代码不起作用故意的。

我的值分支以某种方式获取了所有分支的值,而不是我试图获取的分支的值。 Hash 确实得到了正确的哈希码。我已经在程序之外对其进行了测试,当我输入正确的散列时分支也是如此。我在这个程序中使用了错误的语法吗?

#!/bin/sh
hash=$(git log -n 1 --pretty=format:"%h")
branch=$(git branch --contains $(git log -n 1 --pretty=format:"%H"))
if [ branch ]
then
GIT_WORK_TREE="/data/site/'$branch'"
echo "/data/site/'$branch'"
git checkout -f $branch
fi

最佳答案

好吧,我让它按我想要的方式工作了!在听说 post-receive got refname as stdin 后,我发现我必须削减 refname 以仅获取分支名称并想出了这段代码。多谢你们。 :)

#!/bin/sh
while read oldrev newrev refname
do
branch=${refname##*/}
if [ branch ]
then
path="/data/site/$branch"
mkdir $path
unset GIT_INDEX_FILE
export GIT_WORK_TREE=$path
git checkout -f $refname
echo "Successfully pushed to $path"
fi
done

关于linux - 无法在 bash 中获得正确的 git 分支名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29392438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com