Git Tag Branch

//git setting
git help log
git config --global user.name "patrick"
git config --global user.email ""

git init
git add .

查看当前分支的历史状态
git show HEAD

比较两个版本
git diff HEAD VersionID

回退版本
git reset --hard HEAD^ 回到制定版本并清除改版本后信息
git reset HEAD^ 回到指定版本并提交新的版本

从指定版本搜索
git grep "for new logic " v1.5
git log v1.4..v1.5
git log v1.5..
git log --since='2 weeks ago' 两周以前的commit 信息

//开发分支策略
查看远程分支
git branch -a

删除远程分支和tag
git push origin --delete banchname

git push origin --delete tag tagname
or
git push origin:branchname

git tag -d tagname
git push origin:refs/tags/tagname

删除不存在的对应远程分支的本地分支
git checkout b1
查看b1代码状态
git remote show origin
若是看到stale,使用
git remote prune origin
or
git fetch -p

重命名远程分支(change devel to develop)
git branch -av

删除远程分支
git push --delete origin devel
重命名本地分支
git branch -m devel devlop
推送本地
git push origin develop


创建一个develop分支
git checkout -b devlop master

切换master
git checkout master

对develop 分支进行合并
git merge --no-ff develop(快进式合并)
http://sandofsky.com/blog/git-workflow.html

分支策略
   * 功能(feature)分支

  * 预发布(release)分支

  * 修补bug(fixbug)分支

创建一个功能分支
git checkout -b feature-x develop
git checkout develop
git merge --no-ff feature-x

删除feature分支
git branch -d feature-x

创建一个预发布分支
git checkout -b release-1.2 develop
git checkout master
git merge --no-ff release-1.2

对Master打tag
git tag -a 1.2


创建一个修补bug分支
git checkout -b fixbug-0.1 master
git checkout master
git merge --no-ff fixbug-0.1
git tag -a 0.1.1

合并到develop分支
git checkout develop
git merge -no-ff fixbug-0.1

要删除修补bug分支
git branch -d fixbug-0.1


//tag 的使用
如果tag名是1.0,可以按照如下方式导出
1.导出并压缩为zip格式
git archive --format=zip --output=v1.0.zip 1.0

2.导出并压缩为tar.bz2格式
git archive 1.0 | bzip2 >v1.0.tar.bz2

3.导出并压缩为tar.gz格式
git archive --format=tar 1.0 | gzip > v1.0.tar.gz

4.查看存在的tag
git tag -l 
git tag -l 'v1.4.*'

5.切换到某个tag
git checkout  tag_name

从tag创建一个分支
git checkout -b branch_name tag_name

6.添加tag
git tag -a v1.5 -m 'release 1.5'

7.查看某个tag
 git show v1.5

8.签署标签
git tag -s v1.5 -m 'my signed 1.5 tag'

9.验证标签
git tag -v v1.5

10.后期加注标签
git log --pretty=oneline

11.提交代码忘记打版本号
git tag -a v1.5 9fceb02

12.提交标签
git push origin v1.5
git push origin --tags

13.获取远程tag
git fetch origin tag v1.5