git拉取特定分支上tag

1.分支tag区分概念

  • 分支:像 release/20250818,表示开发的线索,可以继续提交。
  • Tag:像 v1.2.3release-20250818-tag,表示某个特定提交的快照,通常不改动。

git fetch --tags 会把远程的所有 tag 拉到本地,但不会自动切换。


2. 拉取远程分支并切换

如果你只是想拉取分支:

1
2
git fetch origin release/20250818
git checkout release/20250818

或者一步到位:

1
git checkout -b release/20250818 origin/release/20250818

3. 拉取特定 tag 并切换

如果你想切换到 某个 tag

1
2
git fetch origin tag <tag_name>
git checkout tags/<tag_name>

注意:

  • tags/<tag_name>detached HEAD,意思你在这个 tag 上不会自动在分支上提交。
  • 如果想在 tag 基础上创建分支:
1
git checkout -b my_branch tags/<tag_name>

4. 同时拉取分支和 tag

如果你想获取分支的最新内容,同时确保 tag 可用:

1
2
git fetch origin release/20250818 --tags
git checkout release/20250818

这样不会自动切换到某个 tag,如果你想用 tag,需要 git checkout tags/<tag>


总结:

  • 分支git checkout <branch>
  • taggit checkout tags/<tag>,或者基于 tag 新建分支。