Git如何实现checkout远程tag

目录
  • 拉取项目
  • 查看远程tag
  • checkout需要的tag
  • checkout作为一个分支
  • 添加远程仓库
  • push并设置upstream

拉取项目

执行命令git clone:

git clone git@github.com:secbr/nacos.git

查看远程tag

执行命令git tag:

appledeMacBook-Pro-2:nacos apple$ git tag
0.2.1
0.2.1-RC1
0.3.0
0.3.0-RC1
0.4.0
...

此时可找到需要拉取的tag名称。

checkout需要的tag

执行命令git checkout:

(base) appledeMacBook-Pro-2:nacos apple$ git checkout 2.0.2
Note: switching to '2.0.2'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 1fac5c833 Merge pull request #6052 from alibaba/develop

其中2.0.2为tag(分支)名称。

通过git branch命令可以查看当前的分支情况:

(base) appledeMacBook-Pro-2:nacos apple$ git branch
* (HEAD detached at 2.0.2)
  develop

通过此种方式,获得的分支Head处于游离状态,我们可以很方便地在历史版本之间互相切换,比如需要回到某次提交,直接checkout对应的 commit id或者tag名即可。

但在这个基础上的提交会新开一个匿名分支!也就是说我们的提交是无法可见保存的,一旦切到别的分支,游离状态以后的提交就不可追溯了。

解决办法就是新建一个分支保存游离状态后的提交。

checkout作为一个分支

执行git checkout -b tagName (将tag checkout出去作为一个branch):

(base) appledeMacBook-Pro-2:nacos apple$ git checkout -b tag-2.0.2
Switched to a new branch 'tag-2.0.2'
(base) appledeMacBook-Pro-2:nacos apple$ git branch
  develop
* tag-2.0.2
(base) appledeMacBook-Pro-2:nacos apple$ git checkout -b tag-2.0.2
Switched to a new branch 'tag-2.0.2'
(base) appledeMacBook-Pro-2:nacos apple$ git branch
  develop
* tag-2.0.2

在游离状态下的tag中执行git checkout -b tag-2.0.2来新建一个分支。

当然上述checkout tag和checkout tag作为一个分支,可以合并成一个命令:

(base) appledeMacBook-Pro-2:nacos apple$ git checkout -b tag-1.4.2 1.4.2
Switched to a new branch 'tag-1.4.2'

上述命令,将远程版本为1.4.2的tag,新建一个本地分支,名称为tag-1.4.2。

添加远程仓库

(base) appledeMacBook-Pro-2:nacos apple$ git remote add tag-2.0.2 git@github.com:secbr/nacos.git

push并设置upstream

(base) appledeMacBook-Pro-2:nacos apple$ git push
fatal: The current branch tag-2.0.2 has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin tag-2.0.2

(base) appledeMacBook-Pro-2:nacos apple$ git push --set-upstream origin tag-2.0.2
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'tag-2.0.2' on GitHub by visiting:
remote:      https://github.com/secbr/nacos/pull/new/tag-2.0.2
remote:
To github.com:secbr/nacos.git
 * [new branch]          tag-2.0.2 -> tag-2.0.2
Branch 'tag-2.0.2' set up to track remote branch 'tag-2.0.2' from 'origin'.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Git科普文,Git基本原理及各种骚操作(推荐)

    Git简单介绍 Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计. Git工作流程以及各个区域 Workspace:工作区 Staging/Index:暂存区 Local Repository:本地仓库(可修改) /refs/remotes:远程仓库的引用(不可修改) Remote:远程仓库 Git文件状态变化 Git各种命令 Git简单命令 # 在当前目录新建一个git仓库 git init # 打

  • git分支(branch)操作相关命令及分支命令的使用

    分支(branch)操作相关命令 查看本地分支:$ git branch 查看远程分支:$ git branch -r 创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支 切换分支:$ git checkout [name] 创建新分支并立即切换到新分支:$ git checkout -b [name] 删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的.如果想强

  • Git 常用命令清单(整理且详细)

    git工作区,暂存区,版本库之间的关系: 我们建立的项目文件夹就是工作区,在初始化git(git init)版本库之后会生成一个 .git文件,可以将该文件理解成git的版本库repository,.git文件里面还有很多文件其中有一个index文件就是缓存区也叫stage,git还自动生成一个分支master,及指向该分支的指针head. (.命名开头的文件是不可见文件,如果想要显示文件,需要设置:打开计算机->组织->文件夹和搜索选项->查看->高级设置->显示隐藏的文件

  • Git如何实现checkout远程tag

    目录 拉取项目 查看远程tag checkout需要的tag checkout作为一个分支 添加远程仓库 push并设置upstream 拉取项目 执行命令git clone: git clone git@github.com:secbr/nacos.git 查看远程tag 执行命令git tag: appledeMacBook-Pro-2:nacos apple$ git tag 0.2.1 0.2.1-RC1 0.3.0 0.3.0-RC1 0.4.0 ... 此时可找到需要拉取的tag名称

  • Git 创建分支提交远程分支详解

    Git 创建分支提交远程分支详解 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义. 2.切换本地分支 git checkout 分支名,例如从master切换到分支:git checkout 2.0.1.20120806 3.远程分支就是本地分支push到服务器上.比如master就是一个最典型的远程分支(默认). git push origin 2.0.1.20120806 4.

  • git切换到指定远程分支的方法

    我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,现在记录下操作步骤. 查看远程所有分支 $ git branch -a git branch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来 * dev master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/

  • android studio git 删除已在远程仓库的文件或文件夹方式

    有时候我们会不经意的吧不必要的文件传到git的远程仓库上like this... 如果你也碰到这情况,请别急,点根烟然后继续往下看 先进git的安装目录运行git-bash.exe 然后用cd命令切换到项目的根目录如下如 然后再执行命令 git rm -r .idea --cached 其中.idea是我想删除的文件夹,所以用了rm -r命令,如果你想删除的是文件,则用rm就行,慎用rm -r!!!! 然后执行提交命令 git commit -m '删除不必要的文件' 最后进android st

  • Git中smart Checkout与force checkout的区别及说明

    目录 smart Checkout与force checkout的区别 常常会遇到这样的问题 我们改怎么做呢? smart Checkout与force checkout的区别 在使用git进行代码版本管理的时候,当我们切换分支的时候 常常会遇到这样的问题 这是因为在develop分支修改了代码,但是没有commit,所以在切换到其他分支的时候回弹出这个窗口. 我们改怎么做呢? smart checkout就会把冲突的这部分内容带到目的分支(如果你没有点进窗口的那些文件处理冲突的话) force

  • Git 详细介绍查看、删除、重命名远程分支和tag

    Git 详细介绍查看.删除.重命名远程分支和tag 1. 查看远程 分支加上-a参数可以查看远程分支,远程分支会用红色表示出来: xiaosi@Qunar:~/code/qtown-score$ git branch -a FRESH-1606_qscore-20160503 * dev master remotes/origin/20151225-qtown-score-FRESH-1236 remotes/origin/2016-2qtscore remotes/origin/FRESH-1

  • Git远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作

  • Git中tag标签的使用教程

    目录 一.tag简介 二.tag使用命令 1.列出所有tag 2.查看tag信息 3.创建tag 4.创建带注释tag 5.推送tag 6.特定commit_id创建tag 7.删除tag 8.检出tag 9.切换tag 10.为之前提交的添加tag 11.重命名tag 一.tag简介 tag是git版本库的一个标记,指向某个commit的指针.tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 ,v.1.0.2 …这样的标签.tag感觉跟branch有点相似,

  • git 拉取远程分支到本地的方法步骤

    步骤: 1.新建一个空文件,文件名为hhhh 2.初始化 git init 3.自己要与origin master建立连接(下划线为远程仓库链接) git remote add origin git@github.com:XXXX/nothing2.git 远程仓库链接在github这里,如下图红色框内所示的链接: 输入命令: 4.把远程分支拉到本地 git fetch origin dev(dev为远程仓库的分支名) 下图红色勾选的为可使用的分支名 下面拉取远程的develop分支,命令: 5

  • git 入门教程之本地仓库和远程仓库的本质介绍

    本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑. 远程仓库不一定非得是 github 那种专门的"中央服务器",甚至局域网的另外一台电脑也可以充当"中央服务器"的角色,因为它存在的最初目的只是方便大家交换彼此的提交记录而已! 所以本地仓库和远程仓库的基本行为应该是一致的,约定俗成的规定是远程仓库一般不直接参与日常开发工作,主要作为项目托管中心. 某些自动化持续集成环境中也可能会直接操作远程仓库,这时远程仓库就真的和本地仓库没什么区别了!

随机推荐