4

変更をプッシュしたいレポがあります。2 つのリポジトリを同期したい: ./pages.git を ./pages. 開発マシンでの git セットアップは、pages.git にプッシュされます。しかし、Web アプリケーションは ./pages で動作します。

git clone pages.git pages
fatal: destination path 'pages' already exists and is not an empty directory.

さて、ページディレクトリを削除すると、git clone が機能します。しかし、それはきれいな解決策ではありませんね。

ページディレクトリを手動で削除せずにそれを行う方法はありますか? プッシュするたびにgitが自動的にアクションを実行するように、そのプロセスを自動化したいと思います。

ベスト、マリウス

4

2 に答える 2

5

Why not just create a post-receive hook for the pages.git repository that will do a git pull from within the pages repository to pull over the changes? git clone is designed to be run only once per resulting clone (hence why it complains until you delete the previous clone), whereas git pull is designed to be run repeatedly whenever you want to update a repo with changes from another.

I have a hook setup for something essentially the same as this with a particular repository, here's the gist of it:

cd /var/repos/path_to_mirror || exit
unset GIT_DIR
git pull origin master
  • In this case, path_to_mirror is the equivalent of pages in your situation.
  • This script would be in the pages.git/.git/hooks/post-receive file.
于 2010-03-01T12:35:58.747 に答える
0

私の理解では、あなたはlocalコピー、プッシュ、コピーにpages.git取り組んでいますwebappか?

その場合、を呼び出すか、単純なコピーを作成するpost-receiveフックを使用できます。pages.gitgit pullpagespages

Post-receiveフックは、ローカルリポジトリからのプッシュ後にリモートリポジトリで機能します。によりすべての参照が更新された後に実行されpushます。

于 2010-03-01T12:42:19.373 に答える