1

ワークステーションから、「git checkout -f」を実行するフックを含むサーバー上の git ベア リポジトリに変更を「プッシュ」できるので、Git 経由でサイトをデプロイできます。

問題は、私の Web サイトのユーザーがファイル (画像など) をアップロードできることです。これらのファイルがなければ、Web サイトは機能しません。私の質問は次のとおりです。ライブ バージョンの変更をワークステーションにどのように取得できますか? (ユーザーがアップロードしたファイルなど)。

**編集:この構成を設定するために私が従った手順に関する詳細:**

すでにサイトが含まれているサーバー上で:

$ cd /home/website/www
$ git init
$ git add *
$ git commit -m 'First commit !'

...次に、ベアリポジトリを作成します...

$ cd /home/website
$ mkdir www.git 
$ cd www.git
$ git init --bare

...次にフックを設定します...

$ git config core.bare false
$ git config core.worktree /home/website/www
$ git config receive.denycurrentbranch ignore
$ cat > hooks/post-receive
#!/bin/sh
GIT_WORK_TREE=/home/site/www git checkout -f  

... 次に、ベア リポジトリをコミットします。

$ git add /home/website/www
$ git commit -m "First commit of the bare repository"   On my workstation, on a new folder, to get the whole directory :

$ mkdir /Users/me/Sites/website/
$ git init
$ git remote add live ssh://root@myserver.com/home/website/www.git
$ git pull live master

その後、動作します。ワークステーションでファイルを変更してライブにしたい場合は、「git push live master」を実行するだけです。

4

1 に答える 1

0

これらのイメージをベア リポジトリにコミットすることはお勧めしません (これらのイメージが大きいか多数の場合、ベア リポジトリのサイズがすぐに重要になりすぎて、簡単にクローンを作成できなくなる可能性があります)。

ただし、フックを使用して、ワークステーションからアクセスできる共有ディレクトリにこれらのイメージをコピーして戻すことができます (デルタのみを取得するために、rsync を実行できます)。
基本的に、git を使用せずにこれらのイメージを取得することをお勧めします。

于 2013-01-15T07:55:42.547 に答える