【发布时间】:2016-11-01 11:34:11
【问题描述】:
自从尝试设置一个小型自动部署脚本 2 天以来,我一直陷入困境。 问题是:我已经使用 Git 几个月了,但我总是自己在本地使用它,只是为了轻松保存我的代码版本。一切都很好,直到这里。
现在我必须想办法在新功能实现后立即“发布”代码,而且我认为代码足够稳定。 环顾四周,我发现了这些“钩子”,它们是 Git 在某些情况下执行的脚本。基本上这个想法是让我的主分支与我发布的代码同步,这样每次我将一个分支合并到主分支并“推送”时,文件都会自动复制到“/my/published/folder”中。
也就是说,我找到了this tutorial,它解释了使用 Ruby 编写的“挂钩”接收后脚本完全符合我的要求。因为在我的工作室,我现在没有也不想使用 Ruby,所以我找到了相同脚本的 Python version。 我测试和测试,但我无法让它工作。我不断收到同样的错误:
remote: GIT_WORK_TREE is not recognized as as internal or external command,
请考虑这是基于我上面分享的教程。相同的项目名称,相同的结构等。 我什至在我的个人笔记本电脑上安装了 Ruby 并尝试了原始脚本,但它仍然无法正常工作......
我使用的是 Windows,并且 Git 环境变量已设置并可访问。但是,它似乎无法识别 GIT_WORK_TREE 命令。如果我从 Git Bash 运行它,它工作得很好,但如果我使用 Windows Shell,我会收到相同的错误消息。 我想当在我的 py 脚本中使用 call() 函数时,它使用 Windows Shell 运行 cmd。这是我的猜测,但我真的不知道如何解决它。谷歌没有帮助,好像以前没有人遇到过这个问题。 也许我只是在这里没有看到明显的东西,但我花了一整天的时间,我无法摆脱这个泥潭!
有谁知道如何解决它,或者至少有一个解决方法的想法?
希望有人可以帮助... 非常感谢!
【问题讨论】:
-
stackoverflow.com/questions/15449428/… 建议使用
executable参数。我不知道这是否真的适用于 Windows。如果是这样,也许将其标记为该问题的重复项。 -
不清楚你的环境是什么——你打算部署到哪里?到本地文件夹还是到另一台服务器?你有远程仓库吗?如果不是 - “推动”是什么意思?
-
@ivan 该项目是按照上面提到的教程link创建的。一切都是本地的,它正在推送到本地“远程”裸存储库!
-
请看我的回答,看来问题出在 GIT_WORK_TREE 环境变量定义上