繁体   English   中英

Git推送部署后接收python脚本无法设置env var

[英]Git push-to-deploy post-receive python script not cannot set env var

自从尝试设置小型自动部署脚本的2天以来,我一直处于困境。 问题是:我已经使用Git已有几个月了,但是我总是独自在本地使用Git,目的是轻松保存我的代码版本。 一切都很好,直到这里。

现在,我必须找到一种在实现新功能后立即“发布”代码的方法,并且我认为代码足够稳定。 到处搜索我发现了这些“钩子”,它们是Git在某些情况下执行的脚本。 基本上,这个想法是使我的master分支与我发布的代码同步,以便每次我将一个分支合并到master和'push'时,文件会自动复制到'/ my / published / folder'中。

就是说,我已经找到了本教程该教程使用Ruby编写的“挂钩”后接收脚本来说明要执行的操作。 由于在我的工作室中我暂时没有,也不想使用Ruby,因此我找到了同一脚本的Python版本 我进行了测试,但是无法正常工作。 我不断收到相同的错误:

remote: GIT_WORK_TREE is not recognized as as internal or external command,

考虑这是基于我上面共享的教程。 相同的prj名称,相同的结构等。我什至在我的便携式笔记本电脑上安装了Ruby并尝试了原始脚本,但是它仍然无法正常工作...

我正在使用Windows,并且已设置Git env变量并且可以访问它。 但是,尽管如此,它似乎无法识别GIT_WORK_TREE命令。 如果我从Git Bash运行它,则工作正常,但是如果使用Windows Shell,我会收到相同的错误消息。 我想在py脚本中使用call()函数时,它将使用Windows Shell运行cmd。 那是我的猜测,但是我真的不知道如何解决。 Google没有帮助,好像以前没有人遇到过这个问题。 也许我只是在这里看不到明显的东西,但是我整天都在这上面呆了,我无法摆脱这个沼泽!

有谁知道如何解决它,或者至少有解决方法的想法?

希望有人能帮忙...非常感谢!

您正在谈论的Ruby脚本会生成“ bash”命令:

GIT_WORK_TREE=/deploy/path git checkout -f ...

这意味着:用值“ / deploy / path”定义环境变量“ GIT_WORK_TREE”并执行“ git checkout -f ...”。 据我了解,它不适用于Windows命令行。 尝试使用类似:

set GIT_WORK_TREE=c:\temp\deploy && git checkout -f ...

我也遇到了这个问题-我发现的最佳解决方案是将工作树作为参数之一传递

git --work-tree="/deploy/path" checkout -f ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM