更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇( 三 )


新建标签新建一个标签 , 默认是在HEAD新建 , 可以指定commit id新建 , 具体命令如下所示:
$ git tag <标签名>$ git tag <标签名> $ git tag -a <标签名> -m "备注"删除标签【更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇】删除标签若是标签没有推向远程仓库 , 直接使用以下命令删除:
$ git tag -d <标签名>若是标签已经推向远程仓库 , 先删除本地 , 再删除远程仓库的标签:
$ git tag -d <标签名>$ git push origin :refs/tags/<标签名>查看标签git tag的方式是查看所有的标签 , git show <标签名>的方式是查看每个特定的标签
$ git tag$ git show <标签名>推送标签到远程推送标签也是分两种情况 , 一种是指定标签的推送 , 另一种是推送所有标签 。
$ git push origin <标签名>$ git push origin --tags提交了错误代码代码错误提交了怎么办 , 重新再一次提交一个版本呗 , 这个可能是很多人的解决方案 , 当然Git也是有提供自己的解决方案的命令 。
第一种就是再次将修改文件然后git add .到暂存区 , 最后git commit --amend提交修改, 它的原理图如下所示:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
这种方法只能修改当前HEAD , 也就是最新的提交 , 那么要修改是倒数第二个或者倒数第三个的提交呢?
这时候就要使用rebase -i(「交互式rebase」)进行操作了 , 这个命令是指定commit链中哪一个commit需要修改 。
比如执行命令:git rebase -i HEAD^ 。 它表示的含义就是把当前commit内容rebase到HEAD之前的一个commit上 。
若是想直接丢弃最新的commit的修改 , 则直接使用命令:git reset --hard HEAD^ 。 他表示当前commit往前移动一次 。
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
那想丢弃某一次的修改呢?并不是最新的commit , 通用也是要使用rebase的交互式操作:git rebase -onto HEAD^^ HEAD^ master 。 他表示的含义就是以倒数第二个为起点 , master为终点 , rebase到倒数第三个commit上 。
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图