标签管理
标签(tag)
发布一个版本的时,我们通常先在版本库打一个tag,这样就唯一确定了打标签时刻的版本,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。
标签和分支:都是指向某个commit的指针,但分支可以移动,标签不能移动。tag实际上就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起(IP和域名??)
创建标签
切换到需要打标签的分支上:
git tag v1.0#将**当前**commit打上标签v1.0
git log --pretty=oneline --abbrev-commit#以一行的模式显示所有commit标签
git tag v0.5 <commit id>#在<commit id>版本上打上标签v0.5
显示标签
git tag //查看所有标签
git show <tagname>//查看标签tagname信息
标签的不是按时间顺序列出,而是按字母排序的
使用-a和-m参数创建带有说明的标签
git tag -a <tagname> -m "miaoshu" <commit id>
注意:标签总是和某个commit挂钩。如果这个commit即出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
比如使用ff模式去merge分支时,就是直接改变mater指针指向分支当前的commit这时这个commit就同时出现在master和分支上了。
操作标签
将标签推送到远程库
git push <远程库名(origin)> <tagname>#把标签推送到origin上
git push origin --tags#一次推送所有的标签到远程库origin上
删除标签:-d参数:
git tag -d <tagename>#只删除了**本地**的标签
git push origin :refs/tags/<tagname>
#同时删除了本地和远程库的标签,注意origin和冒号之间的空格
GitHub
参与开源项目:
在项目主页点fork就在自己的账号下克隆了一个bootstrap仓库
然后就可以从自己的账号下clone代码了,因为只有自己账户才有推送修改的权限。
在自己的仓库下修改完成后,可以推送pull request给官方仓库来贡献代码。
自定义Git
忽略特殊文件
配置别名
git config --global alias.<别名> 原名
#比如
git config --global alias.co checkout
#把命令checkout取一个别名co
git config --global alias.last 'log -1'
#把命令log -1取一个别名last
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
#把命令log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset%s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit 取一个别名lg
–global参数是全局参数,意思这些命令在这台电脑的所有git仓库都可用。
搭建Git服务器