web-dev-qa-db-ja.com

リモートタグをGitに置き換える

「Origin」リポジトリにいくつかのタグがあります。その後、タグの1つにいくつかの変更を追加し、それらを自分のリポジトリにプッシュする必要があることに気付きました。既存のタグを一度にリポジトリにプッシュする方法はありますか、それとも前にタグを削除する必要がありますか?

31
azmeuk

タグを削除して、変更をリモートリポジトリにプッシュすることはできますが、これは実際の方法ではありません。

git tag -d tag1
git Push Origin :refs/tags/tag1
47
Bijendra

したがって、gitブランチでタグ(例: "v0.5")を移動する必要がある場合(例: "master")を別のコミットに、おそらく新しいコミットに、_-f_オプションを _git tag_ に使用できます。

_-f
--force

Replace an existing tag with the given name (instead of failing)
_

_-f_を_-a_と組み合わせて使用​​して、注釈なしタグの代わりに注釈付きタグを強制的に作成することをお勧めします。

  1. プッシュする前に、リモートのタグを削除してください

    _git Push Origin :refs/tags/<tagname>
    _

    または私たちの例では:

    _$ git Push Origin master :refs/tags/v0.5
    To [email protected]:org_name/repo_name.git
    - [deleted]         v0.5
    _
  2. 最新のコミットを参照するようにタグを置き換えます(-fを使用すると、_git tag -d <tagname>_ローカルタグ削除ステップとして保存されます)。

    _git tag -fa <tagname>
    _

    または私たちの例では:

    _$ git tag -fa "v0.5" -m "version 0.5"
    Updated tag 'v0.5' (was f55c93f)
    _
  3. タグをリモートOriginにプッシュする

    _git Push Origin --tags
    _

    または私たちの例では:

    _$ git Push Origin master --tags
    Counting objects: 1, done.
    Writing objects: 100% (1/1), 196 bytes | 0 bytes/s, done.
    Total 1 (delta 0), reused 0 (delta 0)
    To [email protected]:org_name/repo_name.git
    * [new tag]         v0.5 -> v0.5
    _
3

あなたの質問を理解したかわかりませんが、タグを削除し、変更をプッシュしてからタグを再度追加するのが最も簡単なようです...

2
CDub