問題タブ [git-describe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git describe:不可解なコミット数
次の抜粋を考えてみましょうgit log --oneline --decorate --graph
:
(注: タグ v0.8.4 はブランチ 'develop' からのコミットにあります)
実行すると、どうしてgit describe
これが得られるのですか:
つまり、git はタグ v0.8.4 以降のコミットを 16 回カウントします。私はそれが戻ってくることを期待していv0.8.4-1-g552485a
ます。
具体的には ( --debug オプションを使用する場合):
興味深いことに、開発ブランチに切り替えると:
git describe
期待どおりに戻ります: v0.8.4-1-g0992f78
背景: SmartGit とその Git-Flow 機能を使用しています。
関連するコミットのグラフィカル ビューを次に示します (赤: マスター、青: 開発):
git - git-describe がコミットをカウントする方法を変更できますか?
私の質問は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 拡張ツールからのものです。念のために説明しておきます。)
git - git describe 最新のタグと追加のコミットのみを表示
最新のタグと追加のコミットのみを表示するgit describeの構文はありますか?
あなたが得るように
4.0.7
タグ付けされたコミットにいるため タグ付けさ4.0.7
4.0.7-12
れてから12のコミットがあるため4.0.7
git describe --tags
かなり近いですが4.0.7-12-g09181
、追加されているハッシュを取り除く方法が見つかりませんでした。
まだ表示されます4.0.7-12-g0918
のみを表示します4.0.7
。
git - 最初に「git clone」を実行しなくても、git リポジトリで「git describe」を実行する方法はありますか?
環境変数を設定するために、リモートの git リポジトリの特定のブランチで「git describe」の出力をすばやく収集する必要があるスクリプトがあります。
これを行うための明白な方法は、「git clone」を実行してリポジトリをダウンロードし、作成された git リポジトリ フォルダーに cd して、
...しかし、オーバーヘッドが非常に大きいため、私はそのアプローチがあまり好きではありません。git describe
特に、「git clone」コマンドは、コマンドを 1 回実行するだけで、実行するたびに数百メガバイトの git リポジトリ データをダウンロードします。その後、ダウンロードしたデータは使用されません。
私の質問は、リモート リポジトリで「git describe」を実行する方法はありますか? これに相当するものですが、私が作ったばかりなのでもちろん機能しません:
android - React Native アプリで git-describe を表示するには?
git describe --always --dirty
私は通常、動作を簡単に追跡できるように、開発中の Web サイトやアプリなどの結果を自動的に焼き込むのが好きです。現在、React Native アプリでこれを取得する方法がわかりません。
私は Android を使用していますが、Android と iOS の両方に対するソリューションを探しています。