Git:git-branch的用法总结

概要

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
* master

较为详细的形式:

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。