~/main/sub のようなディレクトリ構造があります。メイン フォルダーには、1 つの git リポジトリがあります。サブディレクトリは無視されます (メインディレクトリにはさらにコンテンツがあります)。これら 2 つは 2 つの別々のオリジンにある必要があるため、サブディレクトリに新しい git リポジトリを追加しました。しかし、両方を同時にコミットしてプッシュする必要があります。そこで、メイン ディレクトリ リポジトリのcommit-msgフックに次のコードを追加しました。
echo "Commiting Content"
now=$(date +"%c")
cd sub
git add --all .
git commit -a -m "$now Update"
echo "Commiting Content complete!"
しかし、コミットを実行するたびに、このコードは実行されますが、クラッシュします。index.lock ファイルは、サブディレクトリの .git フォルダーに残ります。ファイルをコミットに追加することすらありません。サブフォルダーに移動してgit statusを使用すると、まだ追跡されていないファイルがあることがわかります!
次に、同じフック フォルダー内の別の bash スクリプトにコードを配置しました。ターミナルで実行したところ、うまくいきました!なぜそれが機能し、フックファイルが失敗するのですか?