Git--使用5

一:git tag


git tag列出已有的标签:

Git--使用5_第1张图片

使用特定的搜索模式列出匹配的标签:

Git--使用5_第2张图片

获得某个版本的源码:

$mkdir ../linux-2.6.11
$git archive -v v2.6.11 | (cd ../linux-2.6.11/ && tar xf -)
$head -4 ../linux-2.6.11/Makefile


git使用的标签有两种类型:轻量级的(lightweight)和含注释的(annotated)。新建含注释的标签会产生一个标签对象,而轻量级标签不会产生标签对象。

轻量级的标签建立:

$git tag v1.0

这样就会给当前的commit打上v1.0这个标签。

Git--使用5_第3张图片

此时这个tag是一个引用,不是对象。

含注释的标签建立:

$ git tag -a [name] -m [“xxxx”]

Git--使用5_第4张图片

建立含注释的标签会产生一个标签对象:

Git--使用5_第5张图片

可以看到在创建标签后对象数增加了一个。



二:git bisect


如果一个项目到某一个版本发现一个错误,你还知道之前某个版本是好的,那么可以用git bisect来定位最先出现bug的版本。可以:

git bisect start

git bisect bad 现在这个版本是有bug的

git bisect good good_commit good_commit是好的版本,你可以用tag表示,也可以用那20byte的前2个byte表示

Git--使用5_第6张图片

Git--使用5_第7张图片

我的这个意思是,如果数大于等于5就是bug,这里找到了第一个大于等于5的commit。



三:git format-patch


git format-patch -2 -o ~/patch/

git format-patch是用于把当前的git目录中的commit生成的patch文件,并组织成UNIX mailbox的邮件格式。--cc后指定的是邮件的抄送接收人。-2表示只处理最后两次commit


四:git send-email


git send-email --to xxx@xxx --to xxx@xx --cc xxx@xxx --bcc xx@xx ~/patch

git send-email用于把刚才生成的patch文件直接以email的方式发送出去,要用这个命令需要保证正确配置了SMTP服务器的相关信息。用git直接生成patch邮件发送到邮件列表是一个很方便的方式,而且可以保证发出来的邮件有比较统一的格式,方便别人来审阅你的patch。

git config file
 [sendmail]
       smtpencryption = tls
smtppass       = xxxx
smtpserver     = smtp.gmail.com
smptuser = [email protected]       
smtpserverport = 587

你可能感兴趣的:(Git--使用5)