3

我想将我服务器上的 git 存储库同步到我的本地网络服务器。我阅读的所有指南都导致了不同的错误,现在我真的很绝望。对不起,如果您已经阅读了这个问题一百遍,但我仍然不明白 -.-

  • 使用 Linux SuSE 并通过 SSH 使用 PuTTY 连接它
  • 我需要同步的 webprojekt 位于文件夹中:/srv/www/htdocs/my_project
  • git 存储库在这里:/srv/git/repository/my_project
  • 我有用户:“root”和“cron”

cron 应该使用用户“cron”每分钟或更短时间执行一次此命令:

cd /srv/www/htdocs/my_project
git pull origin
(git fetch) <-- not mandatory

当我手动输入这些命令时,它们可以正常工作。(除了我每次都要输入用户密码)

在这个问题中我得到了一些信息,但是当我自己尝试它们时总是会出错

我的 cron 应该是这样的:

* * * * * su -s /bin/sh cron -c 'cd /srv/www/htdocs/my_project && /usr/local/bin/git pull origin master' 

我在我的 PuTTY 上执行了这个,它回答了我:-bash: bin: command not found

我的下一次尝试是:

crontab * * * * * su -s /bin/sh cron -c 'cd /srv/www/htdocs/my_project && /usr/local/bin/git pull origin master'

错误:crontab:无效选项 - 's'

错误:crontab:使用错误:无法识别的选项

我尝试了更多组合(删除 su -s 或删除 -c 等),但它从来没有像我想要的那样工作 -.- 我不应该在 PuTTY 上执行这个命令吗?

很高兴知道:我是 linux 和 GIT 初学者,昨天开始使用它,直到现在实际上已经做了很多。( ^.^ ) 所以我很乐意有一个可以理解的解释,我做错了什么,我必须做什么。这很令人困惑。

4

1 回答 1

2

实现您想要的最简单的方法(让 git 存储库自动部署在您的服务器上)是将 git 存储库放在您的网络服务器中并使用钩子在推送时进行检查。这个答案中描述了如何做到这一点:Deploy a project using Git push

于 2012-11-29T10:44:39.063 回答