0

Web プロジェクトのサブモジュールとして Wordpress をインストールしました。私たちは共有レポを持つ5人のチームです。運用サーバーは、共有リポジトリのマスター ブランチからデプロイされます。

私または別のチーム メンバーが wordpress コアを更新したい場合、ローカル マシンの wordpress サブモジュールに cd し、「git fetch」を実行してからバージョンをチェックアウトします。次に、スーパー プロジェクトで変更をコミットし、そのコミットを共有リポジトリにプッシュします。

ただし、Web サイトを本番サーバーにデプロイすると、Capistrano デプロイ スクリプトは次のエラーで失敗します。

fatal: reference is not a tree

デプロイ スクリプトは、次のコマンドを実行します。

git fetch -q origin
git fetch --tags -q origin 
git reset -q --hard (latest commit)
git submodule -q init
git submodule -q sync
export GIT_RECURSIVE=$([ ! \"`git --version`\" \\< \"git version 1.6.5\" ] && echo --recursive)
git submodule -q update --init $GIT_RECURSIVE
git clean -q -d -x -f

私の調査によると、コミットが参照するツリー オブジェクトは、Web サーバーのサブモジュール内にはまだ存在していません。その場合、展開スクリプトには、最初にサブモジュールフォルダーにcdし、「git submodule update」コマンドを実行する前に「git fetch」を実行する追加の手順が必要であると想定します。ただし、サブモジュールのワークフローで「git fetch」を使用している人は他に見つかりません。私は何が欠けていますか?「--recurse-submodules」スイッチを「git fetch」コマンドに追加する解決策はありますか?

更新問題は、サーバーで実行されている git (Centos 6 では 1.7.1) のバージョンに関連している可能性があると考えたため、1.7.11 にアップグレードしましたが、問題は解決しません。

4

0 に答える 0