【问题标题】:Git and crontabGit 和 crontab
【发布时间】:2020-01-30 16:38:23
【问题描述】:

如何使用 crontab 运行 git pull 命令?当我从目录手动运行它时它可以工作,但是当我将命令添加为crontab 作业时它不起作用。

crontab 文件中的命令如下所示:

* * * * * cd /path/to/repo/.git && git pull

我不会从这台机器推送任何东西,只需要一个本地副本与主存储库同步。

我得到的错误是:

fatal: This operation must be run in a work tree

【问题讨论】:

  • 如果 /path/to/repo/ 是你的 git 工作树,那么你正在“跳转”到错误的目录中,那么只有 cd /path/to/repo 而不是 cd /path/to/repo.git。反正这不是编程题,我觉得超出了SO的范围。
  • 是的,谢谢。我犯了一个愚蠢的错误

标签: linux git crontab


【解决方案1】:

我不建议使用 crontab 拉取,因为它效率极低,而且每 1 分钟拉取一次 git 可能会遇到很多问题。

看看这个脚本,它可能对你有帮助:

https://github.com/olipo186/Git-Auto-Deploy

这种方式只会在每次推送时触发。

如果您仍然希望使用 crontab,请尝试 - 它应该像这样工作:

* * * * * cd /path/to/repo && git pull

谢谢,

亚当

【讨论】:

  • 谢谢。实际上,我需要它每天运行一次。所以crontab应该没问题。
【解决方案2】:

这将起作用:

* * * * * cd /path/to/repo/ && git pull

您无需进入.git 文件夹。

【讨论】:

    【解决方案3】:

    * * * * * git -C /path/to/repo pull
    

    来自git documentation

    -C <path> 就像在 <path> 而不是当前工作目录中启动 git 一样运行。

    【讨论】:

      猜你喜欢
      • 2013-05-26
      • 1970-01-01
      • 2015-10-14
      • 2018-09-09
      • 1970-01-01
      • 2019-09-21
      • 2016-11-16
      • 1970-01-01
      • 2018-02-15
      相关资源
      最近更新 更多