web-dev-qa-db-ja.com

既存のGitタグに新しいコミットを追加します

を使用してGitタグをv1.1として作成しました

git tag -a v1.1 -m 'my version 1.1'

そのタグをプッシュしました。後で、v1.1に関連するいくつかの変更を加えました。新しい変更をプッシュし、git describeを使用してgitタグを確認すると、v1.1-g2dcc97が表示されます。

既存のタグに新しいコミットを追加するにはどうすればよいですか?

24
PVH

重要なGitガイドラインに違反しない限り、既存のタグに新しいコミットを追加することはできません。Never(*)は、公開したコミットを変更します。

Gitのタグは変更可能であることを意図していません。そこにタグをプッシュしたら、そのままにしておきます。

ただし、v1.1の上にいくつかの変更を追加して、v1.1.1v1.2などをリリースできます。それを行う1つの方法は

# Create a new branch from tag v1.1
git checkout -b newbranch v1.1

# Do some work and commit it

# Create a new tag from your work
git tag -a -m "Tag version 1.1.1, a bugfix release" v1.1.1

(*)本当に特別な理由がない限り、その意味を完全に理解している場合にのみ、その習慣を付けないでください。

32
Chris

あなたが絶対に新しいタグを作成する代わりにタグを「移動」する必要がある場合、これを行うことができます:

[〜#〜] nb [〜#〜]@ Chris のように、新しいものを作成したくないという正当な理由があることを確認してくださいタグ付けするのは、ベストプラクティスは新しいタグを作成することです

1。タグをチェックアウトします(分離ヘッド)

git checkout tag/v1.1

2。そのタグからブランチを作成してチェックアウトする(つまり、タグからブランチする)

git checkout -b my-tagged-branch

*** do work and commit changes ***

3。リモートブランチにプッシュします。

git Push  -u Origin my-tagged-branch

必要に応じて、変更を必要とする他のブランチにブランチをマージします(たとえば、バグ修正の場合)

4。まだmy-tagged-branch、タグを削除

git tag -d v1.1

5。タグを再度作成します。これにより、タグを「移動」して、そのブランチの最新のコミットを指す

git tag v1.1

6。リモートのタグを削除

git Push Origin :v1.1

7。リモートでタグを作成

git Push Origin v1.1

5
papigee