1

ブランチを元に戻す方法を学びました。それはうまくいきます。問題は、マスターのコミットにタグを付け、git describeコマンドを使用して最新のタグに基づいて展開を作成することです。コミットを元に戻すと新しいコミットが作成されるため、git describeコマンドは次のようにコミット修正を含むタグを出力します。

前:

git describe
1-2-0

このコミットに「戻る」後:

git describe
1-2-0-1ga99ae04

これを克服する方法はありますか?または、別の方法で最新のタグを取得する必要がありますか?

4

1 に答える 1

1

ただ明確にします。あなたは本当に「戻る」ことはありません。次の履歴があるとします。

A<--B<--C<--D
            |
        (tag:1-2-0)

ここで、元に戻すとしますC。これが起こることです。

A<--B<--C<--D<--E
            |
        (tag:1-2-0)

ご覧のとおり、あなたは歴史を前進させました。このタグがすでにリリースされている場合は、おそらくこれを「ホットフィックス」と見なして、1-2-0-1、またはそれらの線に沿ったものとして再度タグ付けすることをお勧めします。バージョン番号のスキームがわからないので、プロセスに修正プログラムを適用するだけです。

この変更を考慮すると、修正プログラムはこれをもたらします。

           (tag:1-2-0-1)
                | 
A<--B<--C<--D<--E
            |
        (tag:1-2-0)

ただし、このタグをリモートにリリースしたりプッシュしたりしておらず、タグを に移動したいだけのE場合は、この 2 つの方法で行うことができます。覚えやすい方法は、タグを削除して再作成することです。

git tag -d 1-2-0
git tag 1-2-0 E

タグを削除せずにタグを変更するための、より短く、より高速ですが、非常に使いにくい方法は、 を使用することupdate-refです。

git update-ref refs/tags/1-2-0 E

タグを押し上げてリモートから削除したいという奇妙なケースでは、次の構文を使用します。

git push <remote> :1-2-0

原点があなたのリモートであると仮定します。

于 2013-04-25T16:04:42.973 に答える