gpt4 book ai didi

git - 当同一分支上有新提交时,自动将本地 git 存储库与远程存储库同步

转载 作者:行者123 更新时间:2023-12-05 05:24:48 26 4
gpt4 key购买 nike

我已经在亚马逊 ec2 实例上克隆了一个 git 存储库。我想让 ec2 实例上的本地存储库在远程存储库上的同一分支有新提交时始终自动同步(可能使用 git pull 命令)。我怎样才能做到这一点?

最佳答案

如果您希望使服务器与服务器所在分支上的最新更改保持同步,则可以按照此处的步骤操作。当提交或关闭 pull 请求时,将执行“Git pull”。

将此添加到您的代码库以触发,

// This function serves as the Payload URL for Github's webhook
// https://github.com/reponame/projectname/settings/hooks/
public function post_receive()
{
// copied from 'https://gist.github.com/1809044'
$commands = array(
'hostname',
'echo $PWD',
'whoami',
'git fetch',
'branch=$(git symbolic-ref -q --short HEAD)',
'git reset --hard origin/$branch',
'git pull',
'git status'
);

// Run the commands for output
$output = '';
foreach($commands AS $command){
// Run it
$tmp = shell_exec($command);
// Output
$output .= "<span style=\"color: #6BE234;\">\$</span> <span style=\"color: #729FCF;\">{$command}\n</span>";
$output .= htmlentities(trim($tmp)) . PHP_EOL.'<br/>';
}

print_r($output);

}

转到 Github.com 上的 Webhooks 和服务,https://github.com/reponame/projectname/settings/hooks

点击“添加Webhook”

在“Payload URL”中,指定要启用自动“git pull”的服务器的 URL,例如,

https://yourserver.com/github/post_receive”。我们需要确保 URL 是 https(安全),否则我们将得到 302

或者,单击“禁用 SSL 验证”

对于“您希望触发此 Webhook 的哪些事件?”,选择“让我选择单个事件”。并选择“Pull Request”和“Push”

点击“添加网络钩子(Hook)”

在“Recent Deliveries”中,验证您收到的响应是否正确且为绿色。

Webhook Post 请求会在您的服务器上触发以下命令,

在Apache服务器上设置www-data组权限

sudo apt-get install members

members www-data

adduser username www-data

chown www-data:www-data -R username

cp -R /home/username/.ssh /var/www/.ssh

chown www-data:www-data -R /var/www/.ssh

ls -la /var/www/.ssh

sudo chmod g+w .git -R

关于git - 当同一分支上有新提交时,自动将本地 git 存储库与远程存储库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33423025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com