在发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。在回退版本的时候,相当有用!那怎么用呢?
一、在分支上线打tag
1. 在最新代码上打tag;
这种情况最简单,就是在pull下来最新的代码基础上打一下tag,无需指定commit id,系统会默认最新的这个commit id。打tag需要取一个tag的名字,还得同步写一个tag的message,也就是解释、注释,好理解就行。
git tag -a "V8V1R010C010B021" -m "verion V8V1R010C010B021 released"
git tag后面的-a参数表示是add一个tag,后面跟着的就是tag名字,-m就是跟着的注释;执行上面这句话,tag就打上了,不过还真是在本地啊!可以在命令行行里敲一下:git tag;如果有新增的这个tag名字就说明在本地加成功了,只待推送到远端仓库;

2、在分支中间某个commit代码的基础上打tag;
就是平时发版本的时候,没注意打tag,代码分支上又提交了很多新的代码,那怎么办?git还是很友好的,可以指定commit id去打tag,也就是插入tag到指定的点,精确制导!执行的命令跟前面说的基本差不多,只需要在最后面加上指定的commit id,如下:
git tag -a "T8V1R010C010B020" -m "verion V8V1R010C010B021 released" 58e02d201a1773aacfc182a37b2ffeb4833f00fc
当然指定的commit id必须要有啊,不然肯定打不成功的。执行完上面的命令后,敲一下git tag确认一下是否成功。
3、推送tag到远端仓库
众所周知,在本地不管啥操作,只要不动用git push,啥时都没有,换句话说随便怎么瞎搞也不怕,所以在使用git push的时候要小心,要对仓库负责!推送方法如下:
git push origin dev V8V1R010C010B021
推送tag号到指定的dev分支上,推成功了会有如下打印:
4、可以拉个新工程,把代码拉下来确认一下;

二、如何取到指定tag的代码
在测试验证和开发回归的时候,我们经常会遇到回退版本,特别是回退到某个发布的版本,由于打了tag,就很好的能快速退到,tag号要记住啊,记不住也没事,下拉代码执行git tag会弹出来所有的tag,自己复制你需要的那个就是;
git checkout -b branch_name tag_name
很简单了,对应分支名称,tag号就行了。
git checkout -b dev V8V1R010C010B021
这样就可以拉出分支到指定的tag代码点。然后想怎么操作就看你的目的了。
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
我有一个.pfx格式的证书,我需要使用ruby提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o
我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到
我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/
关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec
我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co
我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://