Git:git-branch的用法总结
原帖收藏于IT老兵博客
git-branch的用法。这个命令使用频度很高,还有一些没有搞明白,在这里总结梳理一下。
PS:之前的文章题目命名都用空格,以前一直不理解git的官网为什么多加一个“-”,现在明白了,为了用作文章名和题目比较方便,解了一个惑。
感觉之前的内容总结得还不是很到位,每次在这个地方遇到问题时,还是应该进来再看看,再看看官网,参考参考别的帖子,看看哪里没有整理总结明白,再补充补充。
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
有以上这么多种用法,原本我看了几遍,也感觉云山雾绕,所以在上面加了一些备注。
实例: 展示分支
最简单的形式:
$ git branch
* master
较为详细的形式:
$ git branch -v
* master cac453c 从版本库中移除项目配置文件和日志配置文件
可以看到,加了-v
,显示出了提交号和提交的信息。
更为详细的形式:
$ git branch -vv
* master cac453c [origin/master] 从版本库中移除项目配置文件和日志配置文件
可以看到,加两个v
,除了显示出了提交号,还显示出了上流分支(upstream)的名称。。
实例: 查看所有分支(包括远程的)
$ 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
的意思,显示所有。
实例: 查看远程分支
$ 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
,这里仅仅是举一个例子,正常工作中一般是不应该发生这样的修改,这里只是修改了本地的分支名。
git branch -m master dev
实例: 删除分支
删除dev分支,-d是删除,-D是强制删除,这里只是删除本地的分支,并不是删除远程的分支。
git branch -d dev
git branch -D dev
删除远程分支的命令如下,需要push到远程,这里涉及到了git-push这个指令:
git push <remote_name> --delete <branch_name>
$ git push <remote_name> :<branch_name>
实例: 仅显示分支列表,区别于-v参数
chaiyudeMacBook-Pro:wzu_sports_android_full chaiyu$ git branch --list
hotfix
master
* t_1546