一:git tag
linux
git tag列出已有的標籤:git
使用特定的搜索模式列出匹配的標籤:服務器
得到某個版本的源碼:spa
$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
orm
git使用的標籤有兩種類型:輕量級的(lightweight)和含註釋的(annotated)。新建含註釋的標籤會產生一個標籤對象,而輕量級標籤不會產生標籤對象。server
輕量級的標籤創建:對象
$git tag v1.0源碼
這樣就會給當前的commit打上v1.0這個標籤。it
此時這個tag是一個引用,不是對象。io
含註釋的標籤創建:
$ git tag -a [name] -m [「xxxx」]
創建含註釋的標籤會產生一個標籤對象:
能夠看到在建立標籤後對象數增長了一個。
二:git bisect
若是一個項目到某一個版本發現一個錯誤,你還知道以前某個版本是好的,那麼能夠用git bisect來定位最早出現bug的版本。能夠:
git bisect start
git bisect bad 如今這個版本是有bug的
git bisect good good_commit good_commit是好的版本,你能夠用tag表示,也能夠用那20byte的前2個byte表示
個人這個意思是,若是數大於等於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 = kernellwp@gmail.com smtpserverport = 587