2017-06-01 4 views
4

プロジェクトのすべてのサブモジュールにタグを付けたいと思います。私はとのことを実行しようとしました:すべてのサブモジュールにgitタグを付けるには?

git submodule foreach git tag tagName 

...しかし、それだけで何もしなかった、エラーなしで返すように表示されます。

編集:ここに私の試みの結果は次のとおりです。

enter image description here

誰かが正しく、すべてのサブモジュールをタグ付けする方法を教えてもらえますか?

注:これはthis postと非常によく似た質問ですが、スーパープロジェクトのサブモジュールのリファレンスに依存するように提案されています。しかし、実際にはサブモジュールのレポのタグが好きです。

+1

それをしました。あなたはどんな反応を期待しましたか? – jthill

+0

オリジナルの投稿を編集して、取引のタグが表示されないことがわかりました。 – Eric

+0

しかし、私は以下の受け入れられた答えを読むことを提案します。 @ VonCは私のコマンドがうまくいかない理由の方向に私を指摘することができました。 – Eric

答えて

5

まず、あなたのサブモジュールのフォルダがコンテンツを持っていることを確認してください。

git submodule update --init --recursive 

その後、単に実行します。

git submodule foreach git tag -l 

あなたは、各submduleため、tagNameが表示されるはずです。
あなたの前のコマンドが本当にそれらのサブモジュールにタグ付けしたことを意味します。

は、私は、しかしannotated tagを作ることをお勧めしませんlightweight one:あなたは、各サブモジュールからそのタグをプッシュすることができることを意味し

git submodule foreach git tag -m "tagName" tagName 

親リポジトリレベルでタグ付けすると、サブモジュールgitlink、つまりSHA1が含まれます。あなたのケースではそれで十分でしょう。

+0

私は上記の投稿を編集して、結果のタグのリストを表示しています(none)...注釈付きタグでも。 (そして私の使用例では、実際には、タグ付きサブモジュールへの参照を持つ親だけでなく、サブモジュールのリポジトリにタグが必要です) – Eric

+0

@Eric 'git submodule update -init - 最初に再帰的? – VonC

+0

非常に興味深い!だから、いいえ、私はしていませんでした。このリポジトリから 'git submodule add'を実行したので、これは必要ではないと私は思いました。私はそれがサブモジュールが更新されたことを確認するのに十分だと考えました。しかし、あなたが提案したようにアップデートを実行した後、 'git submodule foreach tag ...'コマンドがうまく動いて動作しました。 – Eric

関連する問題