如何自动登录Linux服务器并在网站上运行git fetch/pull?

如何自动登录Linux服务器并在网站上运行git fetch/pull?,linux,git,github,Linux,Git,Github,以下是我想做的: 我在Linux服务器上有一个托管网站 此站点指向GitHub存储库 我希望能够将更改推送到存储库,然后能够登录到我的网站并单击一个按钮,让网站提取新代码以更新自身 以下是我手动操作的方式: 我在Linux服务器上创建了一个名为update\u site 我通过ssh登录到我的Linux服务器,然后键入\update\u site,它进入站点的目录并执行获取和拉取 第一次它要求我输入我的登录名和密码时,我这样做了 但由于我已经设置了git config--global cr

以下是我想做的:

  • 我在Linux服务器上有一个托管网站
  • 此站点指向GitHub存储库
  • 我希望能够将更改推送到存储库,然后能够登录到我的网站并单击一个按钮,让网站提取新代码以更新自身
以下是我手动操作的方式:

  • 我在Linux服务器上创建了一个名为
    update\u site
  • 我通过ssh登录到我的Linux服务器,然后键入
    \update\u site
    ,它进入站点的目录并执行获取和拉取
  • 第一次它要求我输入我的登录名和密码时,我这样做了
  • 但由于我已经设置了
    git config--global credential.helper store
    ,它再也不会问我了
以下是我希望实现自动化的方法:

  • 我创建了一个PHP文件,它执行文件
    update\u站点
  • 然而,由于PHP网站显然是以另一个用户的身份执行代码,因此它没有我的GitHub凭据
我的问题是:

  • 我如何使该过程自动化,以便当网站执行
    update\u site
    文件时,我的GitHub登录名和密码也会被发送。不用说,我如何才能尽可能安全地执行此操作,即不将GitHub密码以纯文本形式保存在某处

    • 实现自动化的一种可能方法是使用
      cron
      。编辑
      cron
      记录(使用
      crontab-e
      命令)并添加如下行:

      */5 * * * * /path/to/update_site
      

      在上面的第5行中,是指每5分钟

      推送更改并将代码应用到服务器之间的时间间隔是否最多为10(或5)分钟?@RomeoNinov这是可以接受的,是的。虽然当我手动执行此操作时,更改是即时的,或者您的问题的要点是什么?