2016-03-24 28 views
2

複数のサブモジュールを持つgitモジュールを使用します。毎日の使用に便利なように、サブスロットをメイン/スーパー/ルートgit repo/clone/moduleのgitインデックスに自動的に追加して、​​のようなポストコミットフックを作って、メインリポジトリ内のサブモジュールのコミットリファレンスを更新する準備ができています。gitサブモジュールでコミット後のgitフックを起動できません

.gitフォルダは、メインモジュールのルートフォルダ内にあり、メインリポジトリを--recursiveオプションでクローニングした結果、サブモジュール関連のものも含まれているようです。私のgitのバージョンはgit version 2.6.4 (Apple Git-63)です。

私は簡単にメインリポジトリにコミット後のフックを作成できますが、サブモジュール内のコミットから発火することはありません。これは適切かつ適切であると考えられますが、解決策の可能性もあります。

question 10848191の後に別の場所に複数のコミット後のフックファイルを定義しようとしましたが、成功しませんでした。

サブモジュールのコミット時にメインモジュールを自動的に変更する方法を教えてください。

更新:サブモジュールポストcommitフックは今、時には作品の後、私はメインリポジトリにCDに管理され、正常に環境変数を洗浄することにより、gitのを呼び出します。

​​

しかし、元の質問はどのようにサブモジュールフックを起動するかのようでした。これは時には時にはうまくいくようです。

答えて

0

あなたはあなたのポスト-commitフックの内側に以下のようなものを使用することができます。

git --work-tree=$PWD/.. --git-dir=$PWD/../.git branch

上記のコマンドは、私のgit version 2.3.2 (Apple Git-55).git/modules/my-sub-module/hooks/pre-commitファイルから取得されます。上記のコマンドを使用して、メインリポジトリのすべてのローカルブランチを一覧表示しています。

注:残念なことに、あらかじめ設定されたデフォルト設定とenv-varsの一部に依存しているため、コミット後のフック内でディレクトリを変更しgitコマンドを実行しても機能しない可能性があります。だから私の場合cd path-to-main-repo-directory && git some-command内に私の.git/modules/my-sub-module/hooks/pre-commit私を助けなかった。

詳細については、manual hereを確認することもできます。

+0

イベント(http://stackoverflow.com/questions/10848191/git-submodule-commit-hooks)と同じでなくても非常によく似ていますが、私はそれを試してみました。クール、ありがとう! –

+0

@PhilippKunzあなたはすでにそれを解決しました。私はちょうど 'cd 'と' git -C'が私を助けなかった時を無駄にしていたので、誰かのためにおそらく時間を節約するかもしれない、 :-) – dopeddude

+1

それは時々だけ動作する数字です。私はサブモジュールの内部でフックを起動しないようにもう一度経験しましたが、何故か分からないのです。最初に成功した試みが起こったことを私に再度奨励してくれてありがとう。 –

関連する問題