Git
Português (Brasil) ▾ Topics ▾ Latest version ▾ git-branch last updated in 2.24.0

NOME

git-branch - Lista, cria ou exclui filiais

SINOPSE

git branch [--color[=<when>] | --no-color] [--show-current]
	[-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>]
	[(-r | --remotes) | (-a | --all)]
	[--list] [<pattern>…​]
git branch [--track | --no-track] [-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>]

DESCRIÇÃO

If --list is given, or if there are no non-option arguments, existing branches are listed; the current branch will be highlighted in green and marked with an asterisk. Any branches checked out in linked worktrees will be highlighted in cyan and marked with a plus sign. Option -r causes the remote-tracking branches to be listed, and option -a shows both local and remote branches.

If a <pattern> is given, it is used as a shell wildcard to restrict the output to matching branches. If multiple patterns are given, a branch is shown if it matches any of the patterns.

Note that when providing a <pattern>, you must use --list; otherwise the command may be interpreted as branch creation.

Com --contains, mostra apenas as ramificações que contêm o commit nomeado (em outras palavras, os branches cuja dica commit é descendente da commit nomeada),` --no-contains` a inverte. Com o --merged, somente os ramos mesclados na confirmação nomeada (ou seja, os ramos cujas dicas são acessadas a partir da confirmação nomeada) serão listados. Com as ramificações --no-merged somente não mescladas no commit nomeado serão listadas. Se o argumento <commit> estiver faltando, o padrão é HEAD (isto é, a ponta do branch atual).

The command’s second form creates a new branch head named <branchname> which points to the current HEAD, or <start-point> if given. As a special case, for <start-point>, you may use "A...B" as a shortcut for the merge base of A and B if there is exactly one merge base. You can leave out at most one of A and B, in which case it defaults to HEAD.

Note that this will create the new branch, but it will not switch the working tree to it; use "git switch <newbranch>" to switch to the new branch.

Quando uma ramificação local é iniciada em uma ramificação de controle remoto, o Git configura a ramificação (especificamente as entradas de configuração branch. <Name> .remote` e branch. <Name> .merge`) para que git pull seja mesclar adequadamente a ramificação de rastreamento remoto. Este comportamento pode ser alterado através do sinalizador de configuração global branch.autoSetupMerge. Essa configuração pode ser sobrescrita usando as opções --track e` --no-track`, e alteradas posteriormente usando git branch --set-upstream-to.

Com uma opção -m ou` -M`, <oldbranch> será renomeado para <newbranch>. Se <oldbranch> tiver um reflog correspondente, ele será renomeado para corresponder a <newbranch> e uma entrada reflog será criada para lembrar a renomeação da ramificação. Se <newbranch> existir, -M deve ser usado para forçar a renomeação.

As opções -c e` -C` possuem exatamente a mesma semântica de -m e` -M`, exceto que em vez de o branch ser renomeado juntamente com sua configuração, o reflog será copiado para um novo nome.

Com uma opção -d ou` -D`, o <branchname> será deletado. Você pode especificar mais de uma ramificação para exclusão. Se a ramificação tiver um reflog atualmente, o reflog também será excluído.

Use -r juntamente com` -d` para excluir ramificações de rastreamento remoto. Observe que só faz sentido excluir ramificações de rastreamento remoto se elas não existirem mais no repositório remoto ou se a "busca de git" tiver sido configurada para não buscá-las novamente. Veja também o subcomando prune do git-remote[1] para uma maneira de limpar todas as ramificações de rastreamento remoto obsoletas.

OPÇÕES

-d
--delete

Exclua uma ramificação. A ramificação deve ser totalmente integrada em sua ramificação upstream, ou em HEAD se não houver upstream configurado com` --track` ou --set-upstream-to.

-D

Atalho para --excluir--força.

--create-reflog

Crie o reflogo da ramificação. Isso ativa a gravação de todas as alterações feitas no ref da ramificação, permitindo o uso de expressões sha1 baseadas em data, como "<branchname>@{yesterday}". Note que em repositórios não-nus, os reflogs são geralmente ativados por padrão pela opção de configuração core.logAllRefUpdates. O formulário negado --no-create-reflog apenas substitui um` --create-reflog` anterior, mas atualmente não nega a configuração de core.logAllRefUpdates.

-f
--force

Redefina <nome da ramificação> para <ponto inicial>, mesmo que o <nome da ramificação> já exista. Sem -f, o git branch se recusa a mudar um branch existente. Em combinação com o -d (ou` --delete`), permite deletar o branch independentemente de seu status mesclado. Em combinação com -m (ou` --move`), permite renomear o ramo mesmo que o novo nome de ramificação já exista, o mesmo se aplica a -c (ou` --copy`).

-m
--move

Mover / renomear uma ramificação e o reflog correspondente.

-M

Atalho para --mover --força.

-c
--copy

Copie uma ramificação e o reflogo correspondente.

-C

Shortcut for --cópia --força.

--color [= <quando>]

Ramos de cor para realçar ramificações atuais, locais e remotas. O valor deve ser sempre (o padrão), nunca ou automático.

--no-color

Desative as cores das ramificações, mesmo quando o arquivo de configuração fornecer a saída padrão a cores. O mesmo que --cor=nunca.

-i
--ignore-case

As ramificações de classificação e filtragem não diferenciam maiúsculas de minúsculas.

--coluna[=<opções>]
--no-column

Exibir listagem de filiais em colunas. Veja a variável de configuração coluna.branch para a sintaxe de opções. - coluna` e --não-coluna sem opções são equivalentes a sempre e nunca respectivamente.

Esta opção é aplicável apenas no modo não detalhado.

-r
--remotes

List or delete (if used with -d) the remote-tracking branches. Combine with --list to match the optional pattern(s).

-a
--all

List both remote-tracking branches and local branches. Combine with --list to match optional pattern(s).

-l
--list

Listar branches. Com o opcional <pattern> ..., por ex. git branch --list 'maint - *', lista apenas as ramificações que correspondem ao(s) padrão(ões).

--show-current

Print the name of the current branch. In detached HEAD state, nothing is printed.

-v
-vv
--verbose

When in list mode, show sha1 and commit subject line for each head, along with relationship to upstream branch (if any). If given twice, print the path of the linked worktree (if any) and the name of the upstream branch, as well (see also git remote show <remote>). Note that the current worktree’s HEAD will not have its path printed (it will always be your current directory).

-q
--quiet

Seja mais quieto ao criar ou excluir uma ramificação, suprimindo mensagens que não sejam de erro.

--abrev=<comprimento>

Altere o comprimento de exibição mínimo do sha1 na listagem de saída. O valor padrão é 7 e pode ser sobrescrito pela opção de configuração core.abbrev.

--no-abbrev

Exibe os sha1s completos na listagem de saída, em vez de abreviá-los.

-t
--track

Ao criar uma nova ramificação, configure as entradas de configuração branch. <Name> .remote e` branch. <Name> .merge` para marcar a ramificação do ponto inicial como "upstream" da nova ramificação. Esta configuração irá dizer ao git para mostrar a relação entre as duas ramificações em git status e` git branch -v`. Além disso, ele direciona git pull sem argumentos para puxar do upstream quando o novo branch é retirado.

This behavior is the default when the start point is a remote-tracking branch. Set the branch.autoSetupMerge configuration variable to false if you want git switch, git checkout and git branch to always behave as if --no-track were given. Set it to always if you want this behavior when the start-point is either a local or remote-tracking branch.

--no-track

Não configure "upstream", mesmo que a variável de configuração branch.autoSetupMerge seja verdadeira.

--set-upstream

Como essa opção tinha uma sintaxe confusa, não é mais suportada. Por favor use --track ou` --set-upstream-to`.

-u <upstream>
--set-upstream-to=<upstream>

Configure as informações de rastreamento do <branchnome> para que o <upstream> seja considerado o ramo upstream do <branchnome>. Se nenhum <branchnome> for especificado, o padrão será o ramo atual.

--unset-upstream

Remova as informações de upstream para <branchnome>. Se nenhuma ramificação for especificada, o padrão será a ramificação atual.

--edit-description

Abra um editor e edite o texto para explicar para que serve o ramo, para ser usado por vários outros comandos (por exemplo, format-patch,` request-pull` e merge (se ativado)). Explicações de várias linhas podem ser usadas.

--contém [<commit>]

Apenas as ramificações da lista que contêm a confirmação especificada (HEAD, se não especificada). Implica --list.

--não-contém [<commit>]

Apenas listar ramificações que não contenham o commit especificado (HEAD se não especificado). Implica --list.

--merged [<commit>]

Apenas listar ramificações cujas dicas estejam acessíveis a partir da confirmação especificada (HEAD, se não especificado). Implica --list, incompatível com` --no-merged`.

--não-merged [<commit>]

Apenas listar ramificações cujas dicas não podem ser acessadas a partir da confirmação especificada (HEAD, se não especificado). Implica --list, incompatível com` --merged`.

<branchnome>

O nome do ramo a criar ou eliminar. O novo nome da ramificação deve passar por todas as verificações definidas pelo git-check-ref-format[1]. Algumas dessas verificações podem restringir os caracteres permitidos em um nome de ramificação.

<start-ponto>

O novo chefe de ramificação apontará para este commit. Pode ser dado como um nome de ramificação, um ID de confirmação ou uma tag. Se esta opção for omitida, o HEAD atual será usado no lugar.

<velhobranch>

O nome de uma ramificação existente para renomear.

<novobranch>

O novo nome para um ramo existente. As mesmas restrições que para <branchnome> se aplicam.

--ordenar=<chave>

Classifique com base na chave fornecida. Prefixo - para classificar em ordem decrescente do valor. Você pode usar a opção --ordenar = <chave> várias vezes, em cujo caso a última chave se torna a chave primária. As chaves suportadas são as mesmas do git para-cada-ref. A ordem de classificação é padronizada para o valor configurado para a variável branch.sort, se existir, ou para a classificação baseada no refnome completo (incluindo o prefixo refs/...). Isso lista HEAD separado (se presente) primeiro, depois as ramificações locais e, finalmente, as ramificações de rastreamento remoto. Veja git-config[1].

--pontos-em <objeto>

Apenas lista ramos do objeto dado.

--formato <formato>

Uma string que interpola %(fieldnome) de uma ref de branch sendo mostrada e o objeto para o qual ela aponta. O formato é o mesmo do git-para-cada-ref[1].

CONFIGURAÇÃO

pager.branch só é respeitado quando se listam ramificações, ou seja, quando` --list` é usado ou implícito. O padrão é usar um pager. Veja git-config[1].

EXEMPLOS

Inicie o desenvolvimento a partir de uma tag conhecida
$ 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 switch my2.6.14
  1. Esta etapa e a próxima poderiam ser combinadas em uma única etapa com "checkout -b my2.6.14 v2.6.14".

Excluir um ramo desnecessário
$ 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. Exclua os ramos de rastreamento remoto "todo", "html" e "man". A próxima fetch ou pull irá criá-los novamente, a menos que você os configure não. Veja git-fetch[1].

  2. Exclua a ramificação "teste", mesmo que a ramificação "principal" (ou a ramificação que está com check-out no momento) não tenha todas as confirmações da ramificação de teste.

Listing branches from a specific remote
$ git branch -r -l '<remote>/<pattern>'                 (1)
$ git for-each-ref 'refs/remotes/<remote>/<pattern>'    (2)
  1. Using -a would conflate <remote> with any local branches you happen to have been prefixed with the same <remote> pattern.

  2. for-each-ref can take a wide range of options. See git-for-each-ref[1]

Patterns will normally need quoting.

NOTAS

If you are creating a branch that you want to switch to immediately, it is easier to use the "git switch" command with its -c option to do the same thing with a single command.

As opções --contains,` --não-contains`, --merged e` --não-merged` servem quatro finalidades relacionadas, mas diferentes:

  • --contains <commit> é usado para encontrar todas as ramificações que precisarão de atenção especial se <commit> precisar ser rebaseado ou corrigido, uma vez que essas ramificações contêm o <commit> especificado.

  • --não-contains <commit> é o inverso disso, isto é, ramificações que não contêm o <commit> especificado.

  • --merged é usado para encontrar todas as ramificações que podem ser excluídas com segurança, uma vez que essas ramificações são totalmente contidas pelo HEAD.

  • --não-merged é usado para encontrar ramificações candidatas a serem mescladas no HEAD, uma vez que essas ramificações não são totalmente contidas pelo HEAD.

VEJA TAMBÉM

git-check-ref-formato[1], git-busca[1], git-remoto[1], link: usuário-manual.html#que-é-uma-branch[‘` Compreensão história: O que é um branch? '’] no Manual do Usuário do Git.

GIT

Parte do git[1] suite