gitでremoteに同名のtagがいる場合、 fetchにtagsオプションが必要 #git

概要

tagの向き先が意図しないコミットハッシュになっていて、調査したらローカルに同名のtagが存在していたのが原因だった。

詳細

tagの向き先を切り替える場合には、fetchしてからtagにチェックアウトするようにしていた。

$ git fetch
$ git checkout v2.0

tagがremoteにしかない場合は特に問題ないのだが、ローカルに同名のtagが存在する場合、ローカルのtagが優先される。

$ git tag

リモートのtagを反映させるには tags オプションが必要になる。

$ git fetch --tags

まとめ

  • GitHubみたいにremoteでtag作れるならそれに任せちゃったほうがよい
  • 自分でやるなら --tags 忘れずに

おまけ

  • コミットを含むtagを検索する
    • git tag --contains 6f66d52a

参考

qiita.com qiita.com d.hatena.ne.jp