在我的服务器上,我有 /var/repo/site.com.git / 的存储库以及 /var/www/site.com / 的公共站点文件夹
在本地工作我想将更改推送到服务器并自动将所有更改部署到公用文件夹。
在 /var/repo/site.com.git/hooks / 中,我创建了包含此类内容的可执行文件 post-receive :
#!/bin/bash
GIT_WORK_TREE=/var/www/site.com git checkout -f
现在,一旦任何更改被推送到存储库,我的公用文件夹就会更新。
但问题是此更新在公用文件夹中标记为 modified 。从我的角度来看,预计在更新后公用文件夹会在没有任何修改的情况下变为最新版本。
此外,我尝试使用pull命令调用硬重置,但没有成功。
答案 0 :(得分:1)
如果可以接受在更新 post-receive 脚本之前强制重置公开,可以是:
#!/bin/bash
git --work-tree=/var/www/site.com --git-dir=/var/www/site.com/.git checkout -f
git --work-tree=/var/www/site.com --git-dir=/var/www/site.com/.git pull
如果您只想提取更新,可以使用此类脚本:
#!/bin/bash
git --work-tree=/var/www/site.com --git-dir=/var/www/site.com/.git pull