問題タブ [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 - 「gitdescribe」はタグを無視します
次の行で:
「gitdescribe」でv2.0タグが使用されない理由と、これを修正する方法を誰かが説明できますか?v2.0タグはすでにプッシュされているので、削除して再度追加することはできないと思います。
git - マージをマスターに開発し、タグ付け後に元に戻す必要がありますか?
問題は、マージしてタグ付けした後、正しいバージョン(で表示git describe
)をどのように達成するかです。develop
master
master?
私は一般的なgitブランチを使用しています-master
本番用です。ショーとマージした後、git describe
ショーが1.5
オンになっているとしましょう。
そこで、で新しい注釈付きタグを作成すると、が表示されます。master,
develop,
master
1.5-234-g1e894af
git tag -a 1.6
git describe master
1.6
しかし:git describe develop
それでも表示されます1.5-something
が、これは私にとっては奇妙なことです-それはと同じコミットを持っています-なぜGitはそれがまだバージョンmaster
に属していると考えるのですか?1.5
私の頭の中にはこれ以上良いものはないので、マスターを開発にマージします。その後、開発1.6-2-...
は許容できるバージョンを示しますが、もう1つの役に立たないマージコミットを生成し、「再帰によって作成されたマージ」について警告します。これも意味がないと思います。しかし、正しいバージョンを達成する方法は?
git - 複製せずにリモート リポジトリから最後の git タグを取得する
(チェックアウトされていない) リモートリポジトリから最後のタグを取得する方法は?
私が使用するローカルコピーでdescribe
しかしdescribe
、リモートストレージでは使用できません
git - 「gitdescribe」の出力からコードをチェックアウトするGIT
git describe
自動化されたバージョン番号を生成するために使用することを考えています。ここで提案するように。
私の質問は、git describe
asのo / pを取得した場合v2.0-64-g835c907
、将来gitを使用してその特定のリビジョン番号をチェックアウトするにはどうすればよいですか?
git - Gitはさまざまなタグを付けることを説明しています
リポジトリに「Release_V1.0.0.4」というタグを付けました。しかし、これが「gitdescribe」と「gitdescribeorigin」から得たものです。
[root pds_series]#git describe
Release_V1.0.0.2-22-g0859de9
[root pds_series]#git describe origin
Release_V1.0.0.2-18-gce2b24c
「gitdescribe--all」と「gitdescribe--tags」を使用して、適切なタグを取得しました。
[root pds_series]#git describe --all
tags / Release_v1.0.0.4
[root pds_series]#git describe --tags
Release_v1.0.0.4
また、次のコマンドで正しいタグを取得しました。
[root pds_series]#git log --pretty = format:'%ad%h%d' --abbrev-commit --date = short -1
2012-11-15 0859de9(HEAD、Release_v1.0.0.4、マスター)
誰かがこれの背後にある理由を知っていますか?この問題を解決するにはどうすればよいですか?
git - クリーン チェックアウトを説明するときに「git describe -dirty」が「-dirty」サフィックスを追加するのはなぜですか?
--dirty
オプションを発見したばかりでgit describe
、非常に便利なことを行う必要があるように見えます。つまりgit describe
、作業ツリーがダーティな場合の出力にサフィックスを追加しますが、私のリポジトリの一部ではそうではないようです:
これは、作業ディレクトリがtag に対して相対的に汚れているためではないかと考えましたが、そうではないようです:
Mercurialを使っhg id
ていたときはよく使っていましたが、デフォルトの動作は、ダーティ リポジトリに対して報告されたコミット ハッシュにサフィックスを追加するという事実が気に入っていたので、それ以来、同等のものを探していましたが、そうではありませんでした。ドキュメントを考えると、私が期待することをしているように見えます:+
git
git describe --dirty
何--dirty
をすべきか誤解していますか、それとも正しく使用していませんか?
違いが生じた場合に備えて、すべての git リポジトリはバックミンスター経由でデプロイされるため、関連するサブモジュールはなく、ファイルシステムはnfs
共有です。
更新:回避策を発見しましたが、これがどのように違いを生んでいるのかまったくわかりません。
レポで実行するgit diff --quiet HEAD
と、突然、git describe
期待どおりに動作します。
また、リポジトリをgit describe
報告しているときに、 「ローカルのコミットされていない変更、インデックスにチェックインされていません」も表示され、作業ディレクトリに各ファイルがリストされていることを発見しましたが、それらに対する差分はなく、行だけです。dirty
gitk
---- filename ----
さらなる更新:これは引き続き問題であるため、最終的にgit-describe-dirty
スクリプトを作成しました。これは、実行することから始まりgit describe --dirty
ますが、リポジトリが汚れていることが判明した場合は、git update-index -q --refresh
再試行して 2 番目の結果を取得する前に実行されます。
何百ものリポジトリを反復処理する場合git describe-dirty
、リポジトリがダーティであることを最初に示すリポジトリのインデックス更新のみを使用して実行すると、git update-index -q --refresh ; git describe --dirty
毎回実行する場合に比べて大幅に時間を節約できます。
git-tag - 特定のタグに関連する git バージョン
リポジトリで複数のタグ識別子を使用しています。例えば。ABC-1.3.5.234 および DEF-1.2.1.25。describe コマンドは、私が望むほとんどのものを提供します。
git describe --long
ABC-1.3.5.234-33-デッドビーフ
しかし、私の履歴の最新の DEF タグと比較した値を知りたかったのです。相対距離を計算するためのベースとして使用するタグを指定する方法はありますか? 正規表現でそれを行うことはできますか?
git - git describe の出力でログを取得する方法
git describe
問題が発生した場合に、どのリビジョンで問題が発生したかを簡単に追跡できるように、自分のプログラムでの出力を使用したいと考えています。
出力は次のようになります。v2.12-20-g22290d9
checkout
簡単にできることはわかっていますが、git log
または同様のツールを使用してログを追跡するにはどうすればよいですか?