古いコミットに基づくクローンがある場合、gitタグの出力に新しいタグが表示されるとは思わないという点で、タグはコミットのように機能するという印象を受けました。
ただし、この仮定は明らかに間違っています。それは、私がタグを使用することを計画していた方法を破壊します。単純なタグを使用しています。他のタイプのタグは、時間の経過とともに異なる動作をしますか?
あなたの目標はわかりませんが、gitでは、指定されたコミットの日付でタグを簡単に並べ替えることはできません。
いくつかの研究と努力の結果、私はこれを思いついた:
git tag | xargs -I@ git log --format=format:"%ci %h @%n" -1 @ | sort
サンプル出力:
2008-10-30 08:51:04 -0700 221793e REL_1.0.0
2008-10-31 12:06:57 -0700 51a406c REL_1.0.1
2008-10-31 13:01:18 -0700 e1e9751 REL_1.0.2
少し調整するだけで、これは「git branch」と連携して、現在のブランチを示すアスタリスクを処理することもできます。
役立つ可能性のある別のコマンド...ログ出力に参照名(ブランチ、タグなど)を含めます。
git log --decorate
新しいタグが古いクローンに存在しないという仮定に依存するワークフローまたはスクリプトがありますか?ローカルリポジトリのクローンを作成している場合は、「gitclone--no-hardlinks」を試すことができます。しかし、それはあなたの目標にとって最善の解決策ではないかもしれません。
通常のgit tag
状況では修正されます。昨日参照して今日参照すると、同じSHA/ツリー/チェックアウトを指します。
ただし、時間が経過し、リポジトリを変更すると(ローカルで、またはその他の理由でgit-fetch
)、同じSHAがgit describe
同じコミットを記述する()より多くの方法を持つ場合があります。複数のタグが同じSHA(または、SHAを直接指すコミットがない場合は近くのコミット)を指す場合があり、どちらgit describe
が返されるかが変わる場合があります。
おそらくあなたはあなたがやろうとしていることを説明することができ、人々は何かアイデアがあるかどうかを見ることができます。