当我将 git push 到我的 bitbucket 存储库时,我正在尝试设置自动部署。我有一个我从这个博客中利用的 php 部署脚本,但是当脚本运行时,它会记录它只是从以前的提交更新。
这是一个例子。假设我登录到我的服务器并输入 git pull。服务器将使用最新更改进行更新,并假设该提交的哈希为 001。但是,如果我进行多次提交,我们将它们称为 002、003 和 004,假设我在每次提交后将这些更改推送到 bitbucket,我的脚本应该每次都运行. 脚本会运行,但每次它都会保留从 001 开始的更改。只有当我登录服务器并输入 git pull 时,服务器才会更新为 004。你知道这是什么原因吗?
// Make sure we're in the right directory
exec('cd '.$this->_directory, $output);
$this->log('Changing working directory... '.implode(' ', $output));
// Discard any changes to tracked files since our last deploy
exec('git reset --hard HEAD', $output);
$this->log('Reseting repository... '.implode(' ', $output));
// Update the local repository
exec('git pull '.$this->_remote.' '.$this->_branch, $output);
$this->log('Pulling in changes... '.implode(' ', $output));
// Secure the .git directory
exec('chmod -R og-rx .git');
$this->log('Securing .git directory... ');
if (is_callable($this->post_deploy))
{
call_user_func($this->post_deploy, $this->_data);
}
$this->log('Deployment successful.');