gpt4 book ai didi

ruby - 如何在我的 git hook 目录之外进行 cd

转载 作者:数据小太阳 更新时间:2023-10-29 08:50:09 26 4
gpt4 key购买 nike

我正在用 ruby​​ 编写我自己的 git post-receive 钩子(Hook),它类似于这样的东西:

if !File.exists?(rep_dir+repo)
puts "Cloning repository #{repo} into #{rep_dir}."
`cd #{rep_dir}; sudo git clone file:////home/git/repositories/#{repo}.git`
exit
end

这个钩子(Hook)是在 gitolite 通用钩子(Hook)中设置的,所以当我推送新存储库的配置时,我会立即将它克隆到一个新位置。

我还在 gitolite 配置中循环检查每个项目,以检查每个项目的存储库是否存在,但这不是我遇到问题的地方。

我的问题是,每当这个脚本运行时,我都会得到:

remote: cd: 1: can't cd to /home/<somedir>/repositories/
remote: Cloning repository gitolite-admin into /home/<somedir>/repositories/.

Hook 运行后,存储库未克隆到目标目录。我阅读了有关取消设置 GIT_DIR 环境变量的信息,但没有成功。

最佳答案

克隆时无需在任何地方进行 cd。
您可以简单地将目标路径添加为克隆命令的参数。

git clone file:///xxx /path/where/to/clone

(确保目标路径不存在,否则 git 将拒绝克隆到那里)

关于ruby - 如何在我的 git hook 目录之外进行 cd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14721043/

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