tag相关
从tag拉分支
git branch <new-branch-name> <tag-name>
从tag拉代码
git pull --branch tagname
打tag
git tag -a tagname -m "说明"
推送tag
git push origin tagname
git push origin --tags 推送所有tag
删除tag
本地
git tag -d tagName
远程
git push origin :refs/tags/tagName
或者git push origin --delete tagname(注意有可能tagname和branchname同名)
拉取tag
查看远程tag
git ls-remote --tags origin
拉取当前分支的tag
git fetch origin -p
如果tag不在当前分支上,就不会默认被拉取
git fetch --tags 强制拉取所有tag
或者
git fetch origin --prune-tags
删除所有本地tag
git tag -l | xargs git tag -d
分支相关
删除分支
git branch -d branchname
远程
git push origin --delete branchname
git branch -d <branchName> 如果该分支有提交未进行合并,则会删除失败。
git branch -D <branchName> 如果该分支有提交未进行合并,也会删除成功。
分支重命名
git branch -m oldBranchName newBranchName
从分支拉代码
git clone --branch branchName --depth 1 仓库地址 本地目录
从远端拉取所有信息
git fetch origin --prune
同步某次提交到当前分支
git cherry-pick commitID
附录
命名
Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。
Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r
开发环境:dev-->alpha 测试环境:test-->beta 灰度环境:pre-->rc 生产环境:pro-->r
1.Base版: 此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现, 只是做为整体网站的一个基础架构
2.Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言, 该版本软件的Bug较多,需要继续修改
3.Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷, 需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI
4.RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几
5.Release版: 该版本意味“最终版本”,在前面版本的一系列测试版之后,终归会有一个正式版本,是最终交付用户使用的一个版本。 该版本有时也称为标准版。一般情况下,Release不会以单词形式出现在软件封面上,取而代之的是符号(R)。
alias
co = checkout
ci = commit
br = branch
st = status
unstage = reset HEAD --
last = log -1 HEAD
mg = merge --no-ff
pm = pull origin master --rebase
glog = log --pretty=oneline --graph
df = difftool
sh = stash
pl = pull --rebase
ph = push
sp = stash pop
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
rv = revert --soft HEAD^
pr = "!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f"
pr-clean = "!git for-each-ref refs/heads/pr/* --format='%(refname)' | while read ref ; do branch=${ref#refs/heads/} ; git branch -D $branch ; done"
# for bitbucket/stash remotes
spr = "!f() { git fetch -fu ${2:-$(git remote |grep ^upstream || echo origin)} refs/pull-requests/$1/from:pr/$1 && git checkout pr/$1; }; f"