分支操作
1,列出所有本地分支
git branch2、列出所有远程分支
git branch -r3、列出所有本地分支和远程分支
git branch -a4、新建一个分支,但依然停留在当前分支
git branch [branch-name]例如,创建名称为dev的分支:
git branch dev5、新建一个分支,并切换到该分支
git checkout -b [branch]例如,创建名称为dev的分支并切换到该分支上
git checkout -b dev6、切换到指定分支,并更新工作区
git checkout [branch-name]例如,切换到dev分支上
git checkout dev7、合并指定分支到当前分支
git merge [branch]例如,当前在master分支上,将dev分支合并到当前master分支上来
git merge dev8、删除分支
git branch -d [branch-name]例如,删除本地dev分支
git branch -d dev9、将本地master分支推送到远程服务器
git push origin master10、删除远程分支
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,加上-l参数可以使用通配符过滤tag
git tag
例如:
git tag -l "v1.*"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,给指定的commit id打标签
打tag不必要在head之上,也可以在之前的版本上,可通过git log获取之前的提交的版本commit id
git tag -a [tag标签] [commit id]
git tag -a [tag标签] [commit id] -m "your message"
例 如:
git tag -a v1.1 9cbf3d06、删除本地tag
git tag -d [tag]例如,删除本地v1.0 标签
git tag -d v1.07、删除远程tag
git push origin --delete tag <tagname>还有另外一种方式来删除,推送一个空tag到远程
git tag -d <tagname>
git push origin :refs/tags/<tagname>8、 查看tag信息
git show [tag]9、提交指定tag
git push [remote] [tag]例如,将v1.0标签推送到远程服务器上
git push origin v1.010、提交所有tag
git push [remote] --tags10,获取指定tag内容
git clone -b [tag标签] [git地址]
重命名远程分支
在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
例如,把远程分支dev重命名为develop,操作如下:
1.删除远程分支:
$ git push --delete origin dev2.重命名本地分支:
git branch -m dev develop3.推送本地分支:
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 log2,当然我们还可以根据commit id进行版本回退
git reset --hard [commit id]
小结
1,HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
2, 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
3,要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
来源:51CTO
作者:秦策
链接:https://blog.51cto.com/13718210/2419996