2017-08-01 20 views
1

https://github.com/google/glogを例として使用します。最新のリリースは0.3.5です。gitで最新のリリースタグを取得する方法とHEADまでの距離

stackoverflowとgoogleで時間を検索した後、正解を見つけることができません。

git describe 

v0.3.3-147-gb3695ee 

git describe --tags 

示す

v0.3.4-133-gb3695ee 

示します

は私が

v0.3.5-41-gb3695ee 
+0

'v.0.3.5'は現在のHEADの前身ですか?どのコミットをチェックアウトしましたか? 'git rev-parse HEAD'とは何ですか?あなたの記述出力に表示されている 'gb3695ee'があなたが参照するリポジトリにコミットとして存在しないので、私は尋ねます。 –

答えて

2

を得るために入力する必要がありますどのようなコマンド

v0.3.5 

を示し、私はあなたのコマンドの使用が正しいと思うし、それがレポ/分岐問題のより多くのです。

コマンドがコミットから到達可能である最も最近のタグを検索します:describeドキュメントから

簡単に言えば、。 タグがコミットを指す場合、タグのみが表示されます。 それ以外の場合は、タグ名の後に追加の番号 が付加され、最後にコミットされた という短縮オブジェクト名が続きます。

デフォルトでは(-allまたは--tagsなし)git describeは注釈付きの タグのみを表示します。注釈付きタグの作成の詳細については、-a およびgit-tagに-sオプションを参照してください。現在から

  • 到達できないコミット:

たいタグがgit describeを使用して示されていないのであれば、我々はそれがどちらかだと仮定することができます。

  • 注釈付きのタグではありません。
  • 既存のタグではありません。
  • 非注釈タグを表示するには、git describe --tagsを使用できます。これは私たちに別のタグを与えるようだが、あなたのタグではないので、関心のあるタグが存在しないか、現在のブランチから到達できないと結論づけることができます。

    は、私は、問題のレポをクローニングして 0.3.30.3.4、および 0.3.5を含むタグの選択を示してい git tag --listを走りました。 タグが存在するようですが、 masterブランチ上にあってはいけません。 git branch --contains <commit>と確認できます。 <commit>0.3.5となります。リモートブランチをまだクローンしていない場合は、結果が得られません。

    git branch -r --contains <commit>を実行してリモートブランチを確認すると、出力がorigin/v035になります。後のタグがリモートのorigin/v035ブランチにしか到達できないように見えます。

    git describe --tagsを実行すると、出力がv0.3.5になります。タグが現在のコミット(ブランチの先端)を指しているため、ドキュメントで説明されている接尾辞が表示されません。

    +1

    すばらしい説明をありがとう。混乱はマスター( 'd166ae3')とv035(' a6a1dd6')で異なるハッシュを持つまったく同じコミットによって引き起こされます。なぜそれが最初に起こるのでしょうか? – user3667089

    +1

    ああ、興味深い私、それは本当に混乱しています。コミット自体が起こった可能性があるいくつかの方法がありますが、この場合の詳細については、いくつかのレポ調査が必要になるかもしれません。 https://github.com/google/glog/issues/187とhttps://github.com/google/glog/pull/186は読む価値があります。いくつかのテストされていない変更がマスターブランチに含まれていたようですが、その時点でリリースにそれらを含めることは望ましくありませんでした。彼らは代わりにそのブランチからリリースを作成することを選んだ。 – Chris

    +1

    先週、私は、リリースタグ付けのための 'git flow'ワークフローと' git describe'に与える影響についてhttps://github.com/nvie/gitflowを使って潜在的な警告について読んでいたので、実際にはかなり興味深いです。/issues/49。このケースで何が起こっているのか、ちょっと考えていただけです。 おそらく、意図しない変更より前のポイントから作成されたブランチでコミットを再生しただけで、別のコミットハッシュにつながっただけです。 – Chris

    関連する問題