私の質問はgit describe: inexplicable commit count and commit count Calculation in git-describeに関連していますが、どちらの質問ともまったく同じではありません。私は現在のプロジェクトの機能ブランチで開発を行っており、機能ブランチのgit describe
バージョン番号を取得するために使用しており、最近のタグとコミット数を使用して、単調に増加すると思われるバージョン番号を作成しています。(たとえば、私のブランチは現在 v1.1.0 よりも 96 コミット進んでいるためv1.1.0-96-g1234567
、ユーザーに報告するバージョンでは「バージョン 1.1.0.96」になっています。)
現在、マスター ブランチは最近 v1.2.0 でタグ付けされました。バージョン 1.2 で行われた変更を機能ブランチに組み込みたいと考えています。そこで、master をフィーチャー ブランチにマージしましgit describe
たv1.2.0-1-g9876543
。しかし、代わりに、私はを得v1.2.0-97-g9876543
ました。
なぜこれが起こっているのか理解しています.Gitマニュアルに記載されているように、コミット数を生成するために生成git describe
されgit log v1.2.0..9876543
たコミットをカウントしています(97、私のブランチには96のコミットと1つのマージコミットがあったため)。しかし、私が本当に望んでいるのは、git log --ancestry-path v1.2.0..9876543
代わりにの結果を使用することです。これはマージコミットのみを示しているため、v1.2.0-1-g9876543
期待していた結果が得られます。
の代わりにgit describe
使用するように の動作を変更する方法はありますか?git log --ancestry-path v1.2.0..9876543
git log v1.2.0..9876543
そして、さらに重要なことは、現在の方法でそれを行うことの利点は何git describe
ですか? 期待していたバージョン番号付けスキームを生成する独自のツールを作成すると、何を失うのでしょうか?
ところで。ここに git リポジトリの履歴のスナップショットがあるので、今説明した内容を視覚的に確認できます。ブランチはfeature/cmdline
私が取り組んでいるものです。(この履歴ビューは、WindowsのGit 拡張ツールからのものです。念のために説明しておきます。)