推送后,来自仓库的合并代码在生产服务器中不会​​更新

时间:2019-07-18 11:00:56

标签: linux git hook git-merge git-post-receive

我的服务器中有一个接收后挂钩。 我也有另一个开发人员推送到的远程repo(origin)(branch:stage)。 我提取提交并将其从本地计算机推送到生产环境。

我最近从现有分支(阶段)的最新头创建了一个新分支(功能),添加了一些代码并将功能分支推送到远程仓库。我将新功能从功能分支合并到阶段分支。

然后,我从远程存储库拉到本地。 现在,我将舞台分支推向了生产。 我的接收后文件包括:

    git --work-tree=/path/to/project --git-dir=/path/to/project.git checkout - 
    f stage

合并后,我在远程仓库中的头当前位于ae228b9。 而且,在远程生产环境中,钩子的最新日志还指向ae228b9。

问题是合并的代码在生产服务器中看不到。

我是否需要做其他事情才能将合并的代码投入生产?

从源头开始投入生产后,我尝试在本地更改新文件,将其提交并推送到服务器。但是,更改不会反映在服务器中。

编辑: 另外,我卸载了apache php mysql并再次安装了它们。取消注册/安装之前,主页已在服务器中显示,但路由不起作用(404错误),但git钩子仍在起作用。取消安装/安装后,git钩子停止工作

更新: 我使用与上面相同的代码创建了一个新钩子。现在,在推送过程中,我得到:

  

远程:错误:无法取消链接旧的'.gitignore'(权限被拒绝)   远程:错误:无法取消链接旧的“ .htaccess”(权限被拒绝)   远程:致命:无法在“ .idea”处创建目录:权限被拒绝

我在项目文件夹和project.git(hook)文件夹中尝试了以下代码:

sudo chmod -R ug+w .;

unable to link 在此之后,推送成功了,但是更改没有反映出来。

2 个答案:

答案 0 :(得分:0)

我通过删除项目文件夹的内容并再次进行一些新更改来解决此问题。

答案 1 :(得分:0)

我遇到了同样的问题(Azure部署)

有两种方法可以解决此问题-

  1. 增加超时设置(但部署可能会停留一段时间)
  2. 进行新更改(重新部署)

我喜欢第二个选项。