git branch简介

git-branch手册页

NAME名称

git-branch - 列出,创建或删除分支

SYNOPSIS概要

git branch [--color[=<when>] | --no-color] [-r | -a]
      [--list] [-v [--abbrev=<length> | --no-abbrev]]
      [--column[=<options>] | --no-column]
      [(--merged | --no-merged | --contains) [<commit>]] [<pattern>…​]
git branch [--set-upstream | --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 (-d | -D) [-r] <branchname>…​
git branch --edit-description [<branchname>]

DESCRIPTION描述

如果--list给出,或者如果没有非选项参数,则列出现有分支; 当前分支将突出显示星号。选项-r会导致远程追踪分支被列出,选项-a显示本地和远程分支。如果<pattern> 给出a,则将其用作外壳通配符,以将输出限制为匹配的分支。如果给出多个模式,则显示一个分支,如果它匹配任何模式。请注意,提供时 <pattern>,您必须使用--list; 否则该命令被解释为分支创建。

--contains,仅显示包含指定提交的分支(换句话说,其提示提交的分支是指定提交的后代)。使用时--merged,只会将分支合并到指定的提交中(即,其提交提交可从指定提交中获得的分支)将被列出。随着--no-merged唯一分支机构不合并到一个名为承诺将陆续上市。如果缺少<commit>参数,则默认为HEAD(即当前分支的尖端)。

该命令的第二种形式创建一个名为<branchname>的新分支头,它指向当前的HEAD或<start-point>(如果给出)。

请注意,这将创建新的分支,但不会将工作树切换到它; 使用“git checkout<newbranch>”切换到新分支。

当一个本地分支从远程跟踪分支启动时,Git设置分支(特别是branch.<name>.remotebranch.<name>.merge 配置条目),以便git pull将从远程跟踪分支适当合并。此行为可能通过全局branch.autoSetupMerge配置标志进行更改 。该设置可以通过使用--track--no-track选项来覆盖,并在稍后使用git branch --set-upstream-to

使用-m-M选项,<oldbranch>将被重命名为<newbranch>。如果<oldbranch>具有相应的reflog,则将其重命名为匹配<newbranch>,并且会创建reflog条目以记住分支重命名。如果<newbranch>存在,-M必须用于强制重命名发生。

带有-d-D选项,<branchname>将被删除。您可以指定多个分支进行删除。如果分支当前有reflog,则reflog也将被删除。

使用-r连同-d删除远程跟踪分支。请注意,如果远程跟踪分支不再存在于远程存储库中,或者git获取配置为不再获取它们,那么只有删除远程跟踪分支才有意义。另请参阅git-remote(1)的prune子命令以清除所有过时的远程跟踪分支。

OPTIONS选项

-d

- delete

删除分支。该分支必须完全合并到其上游分支中,或者HEAD如果没有设置 上游分支--track--set-upstream

-D

快捷键--delete --force

-l

--create-reflog

创建分支的reflog。这将激活对分支ref的所有更改的记录,从而可以使用基于日期的sha1表达式,如“<branchname>@ {yesterday}”。请注意,在非裸仓库中,configlog core.logallrefupdates选项通常默认启用reflog 。

-F

- force

如果<branchname>已存在,请将<branchname>重置为<startpoint>。没有-f git分支拒绝改变现有的分支。结合-d(或--delete),允许删除分支,而不考虑其合并状态。结合 -m(或--move),即使新分支名称已存在,也允许重命名分支。

-m

- move

移动/重命名分支和相应的reflog。

-M

快捷键--move --force

--color [= <when>]

颜色分支突出显示当前,本地和远程跟踪分支。该值必须始终(默认),永不,或自动。

--no-color

关闭分支颜色,即使配置文件将默认设置为颜色输出。和...一样--color=never

--column [= <options>]

--no-column

在列中显示分支列表。有关选项语法,请参阅配置变量column.branch。--column--no-column 不带选项相当于总是永不分别。

该选项仅适用于非详细模式。

-r

--remotes

列出或删除(如果与-d一起使用)远程跟踪分支。

-a

- all

列出远程追踪分行和当地分行。

--list

激活列表模式。git branch <pattern>会尝试创建一个分支,gitbranch --list <pattern>用来列出匹配的分支。

-v

-vv

--verbose

在列表模式下,显示sha1并为每个头提交主题行,以及与上游分支(如果有)的关系。如果给出两次,也打印上游分支的名称(另请参阅gitremote show <remote>)。

-q

- quiet

创建或删除分支时更安静,抑制非错误消息。

--abbrev = <length>

改变输出列表中sha1的最小显示长度。默认值是7,可以由core.abbrev config选项覆盖。

--no-abbrev

在输出列表中显示完整的sha1,而不是缩写它们。

-t

- track

创建新分支时,设置branch.<name>.remote和 branch.<name>.merge配置条目以将起点分支标记为新分支的“上游”。这个配置会告诉git显示in gitstatus和in两个分支之间的关系git branch -v。此外,它在git pull没有参数的情况下指示新分支签出时从上游撤出。

当起始点是远程跟踪分支时,此行为是默认行为。false如果需要git checkoutgit branch可以将branch.autoSetupMerge配置变量设置为,并且始终表现得如同--no-track 被赋予。always如果您想在起点为本地或远程跟踪分支时想要此行为,请将其设置为。

--no-track

即使branch.autoSetupMerge配置变量为true,也不要设置“上游”配置。

--set-upstream

如果指定的分支尚不存在或者--force已经给出,则完全相同--track。否则,--track在创建分支时设置配置,除非分支指向的地方不更改。

-u <upstream>

--set-upstream-to= <upstream>

设置<branchname>的跟踪信息,以便<upstream>被视为<branchname>的上游分支。如果未指定<branchname>,则默认为当前分支。

--unset-upstream

删除<branchname>的上游信息。如果未指定分支,则默认为当前分支。

--edit-description

打开一个编辑器,编辑文本解释分支是干什么用的,通过其他各种命令使用(例如format-patch, request-pullmerge(如果启用))。可以使用多行解释。

--contains [<commit>]

只列出包含指定提交的分支(如果未指定,则为HEAD)。意味着--list

--merged [<commit>]

仅列出可从指定提交中获得提示的分支(如果未指定,则为HEAD)。意味着--list

--no-merged [<commit>]

只列出提示无法从指定提交中获得的分支(如果未指定,则为HEAD)。意味着--list

<branchname>

要创建或删除的分支的名称。新的分支名称必须通过由git-check-ref-format(1)定义的所有检查 。其中一些检查可能会限制分支名称中允许的字符。

<start-point>

新的分支头将指向这个提交。它可以作为分支名称,提交标识或标签给出。如果省略此选项,则将使用当前的HEAD。

<oldbranch>

要重命名的现有分支的名称。

<newbranch>

现有分支的新名称。与<branchname>相同的限制适用。

EXAMPLES例子

从已知标签开始开发

$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
$ cd my2.6
$ git branch my2.6.14 v2.6.14    (1) 
$ git checkout my2.6.14

1.      这一步和下一步可以合并成一个单步执行“checkout -b my2.6.14 v2.6.14”。

删除不需要的分支

$ git clone git://git.kernel.org/.../git.git my.git
$ cd my.git
$ git branch -d -r origin / todo origin / html origin / man    (1) 
$ git branch -D test                                     (2)

1.      删除远程追踪分支“todo”,“html”和“man”。下一次 抓取拉取将再次创建它们,除非您将它们配置为不要。请参阅git-fetch(1)。

2.      即使“主”分支(或任何一个分支当前被检出)也没有从测试分支提交所有提交,请删除“测试”分支。

NOTES笔记

如果您正在创建要立即签出的分支,那么使用git checkout命令可以更容易-b地创建分支并使用单个命令进行检查。

这些选项--contains--merged--no-merged提供三个相关但不同的目的:

·        --contains <commit> 用于查找所有需要特别注意的分支,因为这些分支包含指定的<commit>。

·        --merged 用于查找可以安全删除的所有分支,因为这些分支完全由HEAD包含。

·        --no-merged 用于查找合并到HEAD中的候选分支,因为这些分支未被HEAD完全包含。


最后更新时间2015-10-19 19:46:04协调世界时

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值