5

リリースを行っている間、以前にリリースされたタグをチェックアウトし、新しいアイテムを ( を使用してgit cherry-pick <commit-id>) そこにチェリーピックしました。次に、 を使用して新しいタグを作成しましたgit tag <tag-name>

これは、変更をチェリーピックした古いタグに影響しますか?

4

2 に答える 2

6

一言で言えば:いいえ。いったん作成されたタグは、ブランチ参照のように移動することを意図していません。意図的に使用する必要があります

git tag --force v1.0 <some-other-commit>

v1.0タグを他のコミットに移動します。タグ付けされたコミットの上に他のコミットをチェリーピッキング (つまり、他のコミットによって導入された変更を適用) しても、タグには影響しません。

例として、v1.0がタグで、履歴が次のようになっている場合、

A -- B [master,v1.0]
 \
  C -- D [develop]

そしてあなたは走る

git checkout v1.0
git checkout -b rc1.1
git cherry-pick C
git cherry-pick D

あなたはで終わるでしょう

A -- B [master,v1.0]
 \    \
  \    C' -- D' [HEAD,rc1.1]  
   \
    C -- D [develop]

タグはv1.0そのまま残り、コミット B を指します。

于 2014-08-22T13:46:31.577 に答える
1

コミットをチェリーピックすると、Git は基本的にそのコミットからパッチを作成し (どのような変更が導入されたかを調べます)、それを現在の HEAD に適用します。そのプロセスでは、チェリーピックした元のコミットに戻るリンクなしで、完全に新しいコミットが作成されます。Git は、コミット メッセージとコミット作成者をコピーして、新しいコミットで再利用します。それ以外は、完全に別のコミットです。

そのため、自分で新しいコミットを作成するのと同じです。いいえ、何かをコミットするようなチェリーピッキングは、他のコミットやタグには影響しません。

于 2014-08-22T13:51:52.737 に答える