概要
Git:git-branch的用法总结
博客
原帖收藏于IT老兵博客
前言
git-branch的用法。这个命令使用频度很高,还有一些没有搞明白,在这里总结梳理一下。
PS:之前的文章题目命名都用空格,以前一直不理解git的官网为什么多加一个“-”,现在明白了,为了用作文章名和题目比较方便,解了一个惑。
感觉之前的内容总结得还不是很到位,每次在这个地方遇到问题时,还是应该进来再看看,再看看官网,参考参考别的帖子,看看哪里没有整理总结明白,再补充补充。
正文
用法
1 2 3 4 5 6 7 8 9 10 11 12 13
| git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [--sort=<key>] [(--merged | --no-merged) [<commit>]] [--contains [<commit]] [--no-contains [<commit>]] [--points-at <object>] [--format=<format>] [<pattern>…] // 列出分支(这个用法有点复杂) git branch [--track | --no-track] [-l] [-f] <branchname> [<start-point>] // 设置分支本地和远程的关系(上流) git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] // 设置分支上流 git branch --unset-upstream [<branchname>] // 取消分支上流的设置 git branch (-m | -M) [<oldbranch>] <newbranch> // 重命名分支 git branch (-c | -C) [<oldbranch>] <newbranch> // 拷贝分支 git branch (-d | -D) [-r] <branchname>… // 删除分支 git branch --edit-description [<branchname>] //修改分支描述
|
git branch
有以上这么多种用法,原本我看了几遍,也感觉云山雾绕,所以在上面加了一些备注。
常用实例
实例: 展示分支
最简单的形式:
较为详细的形式:
1 2
| $ git branch -v * master cac453c 从版本库中移除项目配置文件和日志配置文件
|
可以看到,加了-v
,显示出了提交号和提交的信息。
更为详细的形式:
1 2
| $ git branch -vv * master cac453c [origin/master] 从版本库中移除项目配置文件和日志配置文件
|
可以看到,加两个v
,除了显示出了提交号,还显示出了上流分支(upstream)的名称。。
实例: 查看所有分支(包括远程的)
1 2 3 4 5 6 7 8 9 10 11 12 13
| $ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/dev remotes/origin/f_1123 remotes/origin/f_1268 remotes/origin/f_1316 remotes/origin/f_1317 remotes/origin/f_1346 remotes/origin/f_1347 remotes/origin/f_1490 remotes/origin/f_english remotes/origin/master
|
-a
就是-all
的意思,显示所有。
实例: 查看远程分支
1 2 3 4 5 6 7 8 9 10 11 12
| $ git branch -r origin/HEAD -> origin/master origin/dev origin/f_1123 origin/f_1268 origin/f_1316 origin/f_1317 origin/f_1346 origin/f_1347 origin/f_1490 origin/f_english origin/master
|
比上面那个指令少了一项master
。
-r
的意思是remote
,显示远程的分支情况。
实例: 修改分支名
把master
分支名称修改成dev
,这里仅仅是举一个例子,正常工作中一般是不应该发生这样的修改,这里只是修改了本地的分支名。
1
| git branch -m master dev
|
实例: 删除分支
删除dev分支,-d是删除,-D是强制删除,这里只是删除本地的分支,并不是删除远程的分支。
1 2
| git branch -d dev git branch -D dev
|
删除远程分支的命令如下,需要push到远程,这里涉及到了git-push这个指令:
1 2
| git push <remote_name> --delete <branch_name> $ git push <remote_name> :<branch_name>
|
实例: 仅显示分支列表,区别于-v参数
1 2 3 4
| chaiyudeMacBook-Pro:wzu_sports_android_full chaiyu$ git branch --list hotfix master * t_1546
|
参考
https://git-scm.com/docs/git-branch。