分支操作

1,列出所有本地分支
git branch

2、列出所有远程分支
git branch -r

3、列出所有本地分支和远程分支
git branch -a

4、新建一个分支,但依然停留在当前分支
git branch [branch-name]

例如,创建名称为dev的分支:
git branch dev

5、新建一个分支,并切换到该分支
git checkout -b [branch]

例如,创建名称为dev的分支并切换到该分支上
git checkout -b dev

6、切换到指定分支,并更新工作区
git checkout [branch-name]

例如,切换到dev分支上
git checkout dev

7、合并指定分支到当前分支
git merge [branch]

例如,当前在master分支上,将dev分支合并到当前master分支上来
git merge dev

8、删除分支
git branch -d [branch-name]

例如,删除本地dev分支
git branch -d dev

9、将本地master分支推送到远程服务器
git push origin master

10、删除远程分支
git push origin --delete <branchName>

11,克隆指定分支到本地
git clone -b [branch分支名称] [git地址]
备注: git clone 默认是克隆master分支,可以使用-b参数指定具体的分支,实际上-b参数不仅支持分支名,还支持tag名称等
git clone -b <branch-or-tag-or-commit> [git 地址]

例如,删除远程的dev分支
git push origin --delete dev

否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
git branch -d <branchName>
git push origin :<branchName>

标签(tag)操作

1、列出所有tag
git tag

2、打轻量标签
git tag [tag name]

3、附注标签
git tag -a [tag name] -m [message]

例如,打v1.0标签
git tag -a v1.0 -m 'v1.0 release'

4、后期打标签
git tag -a [tag name] [version]

5、删除本地tag
git tag -d [tag]

例如,删除本地v1.0 标签
git tag -d v1.0

6、删除远程tag
git push origin --delete tag <tagname>

还有另外一种方式来删除,推送一个空tag到远程
git tag -d <tagname>
git push origin :refs/tags/<tagname>

7、 查看tag信息
git show [tag]

8、提交指定tag
git push [remote] [tag]

例如,将v1.0标签推送到远程服务器上
git push origin v1.0

9、提交所有tag
git push [remote] --tags

10,获取指定tag内容
git clone -b [tag标签] [git地址]

重命名远程分支

在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。

例如,把远程分支dev重命名为develop,操作如下:
1.删除远程分支:
$ git push --delete origin dev

2.重命名本地分支:
git branch -m dev develop

3.推送本地分支:
git push origin develop

版本回退

1,我们可以使用git log命令查看历史记录,并根据实际情况进行版本回退,如果嫌输出信息太多,可以加上--pretty=oneline参数
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
例如:回退到上一个版本,我们可以使用git reset命令
git reset --hard HEAD^
然后我们用git log再看看现在版本库的状态
git log

2,当然我们还可以根据commit id进行版本回退
git reset --hard [commit id]

小结

1,HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

2, 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

3,要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。