gpt4 book ai didi

ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script?

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:47 25 4
gpt4 key购买 nike

我编写了一个非常简单的“部署”脚本,作为我的裸 git 存储库中的 post-update Hook 运行。

变量如下

live domain         = ~/mydomain.com
staging domain = ~/stage.mydomain.com
git repo location = ~/git.mydomain.com/thisrepo.git (bare)

core = ~/git.mydomain.com/thisrepo.git
core == added remote into each live & stage gits

livestage 都初始化了 git repos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为 core ) 以便 git pull core stagegit pull core live 将从 的相应 branch pull 更新的文件>核心 repo 。

脚本如下:

#!/usr/bin/env ruby

# Loop over each passed in argument
ARGV.each do |branch|

# If it matches the stage then 'update' the staging files
if branch == "refs/heads/stage"

puts ""
puts "Looks like the staging branch was updated."
puts "Running a tree checkout now…"
puts ""
`cd ~/stage.mydomain.com`
`unset GIT_DIR` # <= breaks!
`git pull core stage`
puts ""
puts "Tree pull completed on staging branch."
puts ""

# If it's a live site update, update those files
elsif branch == "refs/heads/live"

puts ""
puts "Looks like the live branch was updated."
puts "Running a tree checkout now…"
puts ""
`cd ~/mydomain.com`
`unset GIT_DIR` # <= breaks!
`git pull core live`
puts ""
puts "Tree checkout completed on live branch."
puts ""

end

end

我尝试调整来自 this bash script here 的文件的“更新”例如,它使用 unset GIT_DIR 来运行下一个 git 命令 git pull core stagecore 是服务器上不同文件夹中我的 bare 存储库添加的 remote

但是,当执行上面的脚本时,出现以下错误:

remote: hooks/post-update:35: command not found: unset GIT_DIR        
remote: fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.

有什么方法可以在我的 ruby​​ 脚本中的 bash 脚本中执行与 unset GIT_DIR 相同的操作吗?

非常感谢,

詹尼斯

最佳答案

这看起来像

`cd ~/stage.mydomain.com && unset GIT_DIR && git pull core stage`

可以胜任。

推测原因(推测是因为我不熟悉 ruby​​):您在与运行 git pull 的不同的 shell 中运行 unset 命令(正如 samold 在他的回答中指出的那样,当前工作目录也会发生同样的问题。

这表明可能有一些 ruby​​ API 可以操纵 ruby​​ 传递给它使用反引号运算符启动的 shell 的环境,并且还可以更改当前工作目录。

关于ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5526532/

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