7

状況

すべてのリリース バージョンがmasterブランチにスタックされている git ワークフローがあり、コミットがデプロイの準備ができたら、それにタグを追加し、デプロイgit archiveするバンドルをビルドするために使用します。

オプションversion.txtでマークされたファイルを使用して、特定のアーカイブを構築するためにどのコミットが使用されたかを追跡します。.gitattributesexport-subst

質問

に書き込み$Format:%d$version.txtタグ付けされたコミットをエクスポートすると、結果のファイルに次のようなものが(HEAD, tag, master)書き込まれます。

どうすればtag一人で過ごせますか?

[編集] すでにそれを生成する git コマンドがあります:

git describe --tags HEAD

これは出力します:

latest_tag            #if HEAD is tagged

latest_tag-5-g03cc91b #if HEAD is not tagged,
                      #and the latest tag is 5 commits ago on commit g03cc91b

スラッグをこの出力に置き換える方法はありversion.txtますか?

4

1 に答える 1

3

git チェックアウト時に必要な正確な変更を自動的に行う コンテンツ フィルター ドライバーを使用できます。

コンテンツ フィルタ リバー: 汚れ

( Pro Git book 7.2 Customizing Git - Git Attributesより)

onによって変更される他のマーカーに触れずに、特別なマーカー (で置き換えたい) の置換を行うスクリプトをファイルで.gitattributes宣言します。smudgegit describe --tags HEADexport-substgit archive

次にgit archive、 を呼び出します。これは (テストされていません) 残りを置き換える必要があります。

于 2014-06-02T22:24:12.070 に答える