3

サーバー上の git リポジトリをローカル Web サーバーに同期したいと考えています。私が読んだすべてのガイドはさまざまなエラーを引き起こし、今では本当に必死です. この質問をすでに100回読んでいるのなら申し訳ありませんが、まだ理解できません-.-

  • 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 を削除したりなど)。

知っておくと便利: 私は Linux と GIT の初心者で、昨日から作業を開始し、実際に今まで多くのことを行うことができました。( ^.^ ) だから、私が何を間違えて、何をしなければならないかについて、わかりやすい説明をいただければ幸いです。ややこしい。

4

1 に答える 1

2

目的を達成する最も簡単な方法 (git リポジトリをサーバーに自動的にデプロイする) は、git リポジトリを Web サーバー内に配置し、フックを使用してプッシュ時にチェックアウトすることです。これについては、この回答で説明されています: Deploy a project using Git push

于 2012-11-29T10:44:39.063 に答える