Git šŸŒ™
PortuguĆŖs (Brasil) ā–¾ Topics ā–¾ Latest version ā–¾ git-branch last updated in 2.44.0

NOME

git-branch - Lista, cria ou exclui ramificaƧƵes

RESUMO

git branch [--color[=<quando>] | --no-color] [--show-current]
	[-v [--abbrev=<n> | --no-abbrev]]
	[--column[=<opƧƵes>] | --no-column] [--sort=<chaves>]
	[--merged [<commit>]] [--no-merged [<commit>]]
	[--contains [<commit>]] [--no-contains [<commit>]]
	[--points-at <objeto>] [--format=<formato>]
	[(-r | --remotes) | (-a | --all)]
	[--list] [<padrĆ£o>…​]
git branch [--track[=(direct|inherit)] | --no-track] [-f]
	[--recurse-submodules] <nome-do-ramo> [<ponto-de-partida>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<nome-do-ramo>]
git branch --unset-upstream [<nome-do-ramo>]
git branch (-m | -M) [<ramo-antigo>] <nome-do-ramo>
git branch (-c | -C) [<ramo-antigo>] <novo-ramo>
git branch (-d | -D) [-r] <nome-do-ramo>…​
git branch --edit-description [<nome-do-ramo>]

DESCRIƇƃO

Caso a opĆ§Ć£o --list seja usada, ou caso nĆ£o haja argumentos que nĆ£o sejam opƧƵes, as ramificaƧƵes existentes serĆ£o listadas; a ramificaĆ§Ć£o atual serĆ” destacada em verde e marcada com um asterisco. Todas as ramificaƧƵes averiguadas nas Ć”rvores de trabalho vinculadas serĆ£o destacadas em ciano e marcadas com um sinal de mais. A opĆ§Ć£o -r faz com que as ramificaƧƵes de rastreamento remoto sejam listadas, e a opĆ§Ć£o -a mostra as ramificaƧƵes locais e as remotas.

Caso um <padrĆ£o> seja informado, ele serĆ” utilizado como um curinga do shell para restringir a saĆ­da das ramificaƧƵes correspondentes. Caso vĆ”rios padrƵes sejam informados, um ramo serĆ” exibido caso coincida com qualquer um dos padrƵes.

Note que ao fornecer um <padrĆ£o> vocĆŖ deve utilizar --list; caso contrĆ”rio, o comando pode ser interpretado como uma criaĆ§Ć£o do ramo.

Com --contains, mostra apenas os ramos que contĆŖm o commit indicado (em outras palavras, os ramos cujos commits do cume sĆ£o descendentes do commit nomeado), a opĆ§Ć£o --no-contains inverte isso. Com a opĆ§Ć£o --merged, apenas as ramificaƧƵes mescladas no commit indicado (ou seja, as ramificaƧƵes cujos commits principais sĆ£o acessĆ­veis a partir do commit indicado) serĆ£o listados. Com a opĆ§Ć£o --no-merged, apenas as ramificaƧƵes nĆ£o mescladas no commit indicado serĆ£o listados. Se o argumento <commit> estiver ausente, a predefiniĆ§Ć£o serĆ” HEAD (ou seja, o cume do ramo atual).

O segundo formulĆ”rio do comando cria um novo cabeƧalho do ramo informado <nome-do-ramo> (nome do ramo0), que aponta para o HEAD atual, ou o <ponto-de-partida> caso seja utilizado. Como um caso especial, para o <ponto-de-partida>, utilize "A...B" como um atalho para a base da mesclagem de A e B caso sejam exatamente uma base para ser mesclada. VocĆŖ pode deixar de fora no mĆ”ximo um de A e B, caso onde a predefiniĆ§Ć£o retorna para HEAD.

Observe que isso criarĆ” a nova ramificaĆ§Ć£o mas nĆ£o mudarĆ” a Ć”rvore de trabalho para ela; para alternar para a nova ramificaĆ§Ć£o utilize "git switch <novo-ramo>".

Quando uma ramificaĆ§Ć£o local Ć© iniciada numa ramificaĆ§Ć£o remotamente monitorada, o Git define a ramificaĆ§Ć£o (especificamente as entradas da configuraĆ§Ć£o branch.<nome>.remote e branch.<nome>.merge) para que o comando git pull mescle adequadamente a partir do ramo monitorado remotamente. Este comportamento pode ser alterado atravĆ©s da variĆ”vel de configuraĆ§Ć£o global branch.autoSetupMerge. Esta configuraĆ§Ć£o pode ser substituĆ­da utilizando as opƧƵes --track e --no-track, podendo ser alterada posteriormente utilizando o comando git branch --set-upstream-to.

Com uma opĆ§Ć£o -m ou -M, <ramo-antigo> serĆ” renomeado para <novo-ramo>. Caso o <ramo-antigo> tenha um "reflog" correspondente, ele serĆ” renomeado para corresponder ao <novo-ramo>, e uma entrada no "reflog" serĆ” criada para lembrar a renomeaĆ§Ć£o do ramo. Se o <novo-ramo> jĆ” existir, a opĆ§Ć£o -M deverĆ” ser usada para impor a renomeaĆ§Ć£o.

As opƧƵes -c e -C tĆŖm exatamente a mesma semĆ¢ntica que -m e -M, exceto que em vez do ramo que estĆ” sendo renomeado, ele serĆ” copiado com um novo nome junto com a sua configuraĆ§Ć£o e o reflog .

Com uma opĆ§Ć£o -d ou -D seja usada, o <nome-do-ramo> serĆ” excluĆ­do. Ɖ possĆ­vel definir mais de um ramo para a exclusĆ£o. Se no momento o ramo jĆ” possuir um "reflog", o "reflog" tambĆ©m serĆ” excluĆ­do.

Utilize a opĆ§Ć£o -r junto com -d para excluir o monitoramento das ramificaƧƵes remotas. Observe que sĆ³ faz sentido excluir o monitoramento das ramificaƧƵes remotas caso elas nĆ£o existam mais no repositĆ³rio remoto ou caso o comando git fetch tenha sido configurado para nĆ£o resgatĆ”-las novamente. Consulte tambĆ©m o subcomando prune git-remote[1] para conhecer uma maneira de limpar todos os monitoramentos obsoletos das ramificaƧƵes remotas.

OPƇƕES

-d
--delete

Exclua uma ramificaĆ§Ć£o. A ramificaĆ§Ć£o deve ser totalmente mesclada sua ramificaĆ§Ć£o "upstream" ou no HEAD caso nenhum "upstream" tenha sido definido, utilize --track ou --set-upstream-to.

-D

Um atalho para --delete --force.

--create-reflog

Cria o "reflog" do ramo. Isso ativa o registro de todas as alteraƧƵes feitas na referĆŖncia do ramo, permitindo o uso de expressƵes sha1 com base em data, como "<nome-do-ramo>@{yesterday}". Observe que em repositĆ³rios nĆ£o vazios, por predefiniĆ§Ć£o, os "reflogs" geralmente sĆ£o ativados pela opĆ§Ć£o de configuraĆ§Ć£o core.logAllRefUpdates. A forma negada da opĆ§Ć£o --no-create-reflog apenas substitui a forma anterior da opĆ§Ć£o --create-reflog, mas atualmente nĆ£o nega a configuraĆ§Ć£o em core.logAllRefUpdates.

-f
--force

Redefine <nome-do-ramo> para <ponto-de-partida>, ainda que o <nome-do-ramo> jĆ” exista. Sem a opĆ§Ć£o -f, o comando git branch se recusa a alterar uma ramificaĆ§Ć£o jĆ” existente. Em combinaĆ§Ć£o com a opĆ§Ć£o -d (ou --delete), permite excluir o ramo independentemente da sua condiĆ§Ć£o de mesclagem ou se ele aponta para um commit vĆ”lido. Em combinaĆ§Ć£o com a opĆ§Ć£o -m (ou --move), permite renomear o ramo ainda que o novo nome do ramo jĆ” exista, o mesmo se aplica para a opĆ§Ć£o`-c` (ou --copy).

Observe que git branch -f <nome_do_ramo> [<ponto-inicial>], mesmo com -f, recusa-se a alterar um ramo jĆ” existente ‘<nome_do_ramo>’ que Ć© verificado em outra Ć”rvore de trabalho ligada ao mesmo repositĆ³rio.

-m
--move

Move/renomeia uma ramificaĆ§Ć£o junto com a sua configuraĆ§Ć£o e o reflog.

-M

Atalho para --mover --force.

-c
--copy

Copia uma ramificaĆ§Ć£o, junto com a sua configuraĆ§Ć£o e o reflog.

-C

Atalho para --copy --force.

--color[=<quando>]

Colore as ramificaƧƵes destacando as ramificaƧƵes atuais, locais e remotamente rastreadas. O valor sempre deve ser always (a predefiniĆ§Ć£o), never ou auto.

--no-color

Desativar as coloraƧƵes na ramificaĆ§Ć£o, mesmo quando o arquivo de configuraĆ§Ć£o define como padrĆ£o uma saĆ­da colorida. O mesmo que --color=never.

-i
--ignore-case

As ramificaƧƵes de classificaĆ§Ć£o e filtragem nĆ£o diferenciam maiĆŗsculas de minĆŗsculas.

--omit-empty

NĆ£o imprima uma nova linha apĆ³s a formataĆ§Ć£o das referĆŖncias onde o formato se expande para a string vazia.

--column[=<opƧƵes>]
--no-column

Exiba lista dos ramos em colunas. Para conhecer a sintaxe da opĆ§Ć£o, consulte a variĆ”vel de configuraĆ§Ć£o column.branch. --column e --no-column sem opƧƵes sĆ£o respectivamente o mesmo que always e never.

Esta opĆ§Ć£o Ć© aplicĆ”vel apenas no modo nĆ£o detalhado.

-r
--remotes

Lista ou excluĆ­ (se usado com a opĆ§Ć£o -d) as ramificaƧƵes monitoradas remotamente. Combine com a opĆ§Ć£o --list para que coincida com o(s) padrĆ£o(Ƶes) opcional(ais).

-a
--all

Lista ambas as ramificaƧƵes monitoradas remotamente e os ramos locais. Combine com a opĆ§Ć£o --list para coincidir com o(s) padrĆ£o(Ƶes) opcional(ais).

-l
--list

Lista os ramos. Com <padrĆ£o>... opcional, por exemplo, git branch --list 'maint-*', lista apenas as ramificaƧƵes que correspondem ao(s) padrĆ£o(Ƶes).

--show-current

Exiba o nome do ramo atual. Na condiĆ§Ć£o onde HEAD esteja desanexado, nada Ć© impresso.

-v
-vv
--verbose

Quando estiver no modo de lista, mostre o sha1 e a linha de assunto do commit para cada cabeƧalho, juntamente com a relaĆ§Ć£o com o ramo upstream (se houver). Se usado duas vezes, imprime o caminho da Ć”rvore de trabalho vinculada (se houver) junto com o nome da ramificaĆ§Ć£o upstream (consulte tambĆ©m git remote show <remoto>). Observe que o HEAD da Ć”rvore de trabalho atual nĆ£o terĆ” o seu caminho impresso (serĆ” sempre o seu diretĆ³rio atual).

-q
--quiet

Seja mais silencioso ao criar ou excluir uma ramificaĆ§Ć£o, suprimindo as mensagens que nĆ£o sejam de erro.

--abbrev=<n>

Na listagem detalhada que mostra o nome do objeto do commit, mostre o prefixo mais curto que tenha pelo menos <n> dĆ­gitos hexadecimais e que faƧa uma referĆŖncia exclusiva ao objeto. O valor predefinido Ć© 7 e pode ser substituĆ­do pela opĆ§Ć£o de configuraĆ§Ć£o core.abbrev.

--no-abbrev

Exibe o sha1 completo na saĆ­da da listagem em vez de abreviĆ”-los.

-t
--track[=(direct|inherit)]

Ao criar uma nova ramificaĆ§Ć£o, configure as entradas da configuraĆ§Ć£o branch.<nome>.remote e branch.<nome>.merge para definir a configuraĆ§Ć£o do monitoramento "upstream" partindo da nova ramificaĆ§Ć£o. Esta configuraĆ§Ć£o instruirĆ” o git a exibir o relacionamento entre as duas ramificaƧƵes com o git status e com o git branch -v. AlĆ©m disso, ele direciona o git pull sem argumentos para extrair do "upstream" quando o novo ramo for retirado.

O exato ramo "upstream" Ć© escolhido dependendo do argumento opcional: -t, --track ou --track=direct, significa usar o prĆ³prio ramo do ponto inicial como o "upstream"; jĆ” a opĆ§Ć£o --track=inherit significa copiar a configuraĆ§Ć£o "upstream" da ramificaĆ§Ć£o do ponto inicial.

A variĆ”vel de configuraĆ§Ć£o branch.autoSetupMerge determina como os comandos git switch, git checkout e git branch devem se comportar quando nem uma opĆ§Ć£o --track nem --no-track sĆ£o usados:

Ɖ predefinido que true comporte-se como se a opĆ§Ć£o --track=direct fosse usada sempre que o ponto de partida for um ramo rastreado remotamente. false se comporta como se a opĆ§Ć£o --no-track fosse usada. always se comporta como se a opĆ§Ć£o --track=direct fosse usada. inherit se comporta como se a opĆ§Ć£o --track=inherit fosse usada. simple se comporta como se a opĆ§Ć£o --track=direct fosse usada apenas quando o ponto de partida for um ramo rastreado remotamente e o novo ramo tenha o mesmo nome que o ramo remoto.

Consulte git-pull[1] e git-config[1] para uma discussĆ£o adicional sobre como as opƧƵes branch.<nome>.remote e branch.<nome>.merge sĆ£o utilizadas.

--no-track

NĆ£o configure o "upstream", ainda que a variĆ”vel de configuraĆ§Ć£o branch.autoSetupMerge seja definida.

--recurse-submodules

ESSA OPƇƃO Ɖ EXPERIMENTAL! Faz com que o comando atual se repita no submĆ³dulos caso submodule.propagateBranches esteja ativado. Consulte submodule.propagateBranches em git-config[1]. No momento, hĆ” apenas suporte para a criaĆ§Ć£o do ramo.

Quando usado na criaĆ§Ć£o dos ramos, um novo ramo <nome-do-ramo> serĆ” criado no super projeto (superproject) e todos os submĆ³dulos no super projeto <ponto-de-inĆ­cio>. Nos submĆ³dulos, o ramo irĆ” apontar para o commit do submĆ³dulo no <ponto-de-inicio> do super projeto, porĆ©m a informaĆ§Ć£o do rastreamento do ramo serĆ” configurado com base no submĆ³dulo’s dos ramos locais e remotos por exemplo. O ramo git --recurse-submodules topic origin/main irĆ” criar o ramo do submĆ³dulo "topic" que aponta para o commit do submĆ³dulo no super projeto "origin/main", contudo rastreia o submĆ³dulos "origin/main".

--set-upstream

Como essa opĆ§Ć£o tinha uma sintaxe confusa, ela nĆ£o Ć© mais suportada. Em vez disso use --track ou --set-upstream-to.

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

Configure as informaƧƵes do monitoramento do <nome-do-ramo> para que o <upstream> seja considerado o ramo "upstream" do <nome-do-ramo>. Caso nenhum <nome-do-ramo> seja utilizado, entĆ£o a predefiniĆ§Ć£o retorna para o ramo atual.

--unset-upstream

Remova as informaƧƵes "upstream" para o <nome-do-ramo>. Caso nenhuma ramificaĆ§Ć£o seja utilizada, a predefiniĆ§Ć£o retorna para a ramificaĆ§Ć£o atual.

--edit-description

Abra um editor e edite o texto para explicar para que serve a ramificaĆ§Ć£o, para ser utilizado por outros comandos (format-patch, request-pull e merge por exemplo (se ativado)). Podem ser utilizadas as explicaƧƵes em mais de uma linha.

--contains [<commit>]

Listar apenas as ramificaƧƵes que contenham o commit informado (HEAD, caso nenhum seja informado). Implica no uso da opĆ§Ć£o --list.

--no-contains [<commit>]

Liste apenas as ramificaƧƵes que nĆ£o contenha o commit informado (HEAD, caso nenhum seja informado). Implica no uso da opĆ§Ć£o --list.

--merged [<commit>]

Liste apenas as ramificaƧƵes cujas dicas sĆ£o acessĆ­veis a partir do commit informado (HEAD, caso nenhum seja informado). Implica no uso da opĆ§Ć£o --list.

--no-merged [<commit>]

Liste apenas as ramificaƧƵes cujas dicas nĆ£o possam ser acessadas a partir do commit informado (HEAD, caso nenhum seja informado). Implica no uso da opĆ§Ć£o --list.

<nome-do-ramo>

O nome do rapara para criar ou para excluir. O novo nome do ramo deve passar em todas as verificaƧƵes definidas por git-check-ref-format[1]. Algumas dessas verificaƧƵes podem restringir os caracteres permitidos num nome do ramo.

<inĆ­cio-ponto>

O novo cabeƧalho do ramo apontarĆ” para este commit. Ele pode ser usado como um nome do ramo, um ID do commit ou uma etiqueta. Se essa opĆ§Ć£o for omitida, em seu lugar o HEAD atual serĆ” usado.

<ramo-antigo>

O nome de um ramo jĆ” existente. Se essa opĆ§Ć£o for omitida, em seu lugar o nome da ramificaĆ§Ć£o atual serĆ” usado.

<novo-ramo>

Um novo nome para um ramo jƔ existente. Se aplicam as mesmas restriƧƵes para <nome-do-ramo>.

--sort=<chave>

Classifique com base na chave informada. O prefixo - Ć© utilizado para classificar em ordem decrescente. VocĆŖ pode utilizar a opĆ§Ć£o --sort=<chave> mais de uma vez; nesse caso, a Ćŗltima chave se torna a chave primĆ”ria. As chaves compatĆ­veis sĆ£o as mesmas que as do git for-each-ref. A predefiniĆ§Ć£o da ordem da classificaĆ§Ć£o retorna para o valor configurado para a variĆ”vel branch.sort, caso exista ou a classificaĆ§Ć£o com base no nome completo da "ref" (incluindo o prefixo refs/...). Isso lista primeiro o HEAD desanexado (caso esteja presente), depois as ramificaƧƵes locais e finalmente as ramificaƧƵes monitoradas remotamente. Consulte git-config[1].

--points-at <objeto>

Apenas lista os objetos das ramificaƧƵes informadas.

--format <formato>

Uma string que interpola %(fieldname) de uma referĆŖncia da ramificaĆ§Ć£o que estĆ” sendo mostrada e o objeto para onde ela aponta. O formato Ć© o mesmo do git-for-each-ref[1].

CONFIGURAƇƃO

O pager.branch sĆ³ Ć© respeitado ao listar as ramificaƧƵes, ou seja, quando a opĆ§Ć£o --list Ć© usada ou estĆ” implĆ­cito. A predefiniĆ§Ć£o Ć© usar um pager. Consulte git-config[1].

Warning

Missing pt_BR/includes/cmd-config-section-rest.txt

See original version for this content.

Warning

Missing pt_BR/config/branch.txt

See original version for this content.

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 numa Ćŗnica etapa com "checkout -b my2.6.14 v2.6.14".

Exclua um ramo que seja 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 as ramificaƧƵes monitoradas remotamente "todo", "html"e "man". O prĆ³ximo fetch ou pull os criarĆ” novamente, a menos que vocĆŖ os configure para que nĆ£o seja feito. Consulte git-fetch[1].

  2. Exclua o ramo "teste", mesmo que o ramo "principal" (ou o ramo que estĆ” com a averiguaĆ§Ć£o no momento) nĆ£o tenha todos os commits do ramo do teste.

Listando as ramificaƧƵes de um determinado ponto remoto
$ git branch -r -l '<remoto>/<padrĆ£o>'                 (1)
$ git for-each-ref 'refs/remotes/<remoto>/<padrĆ£o>'    (2)
  1. Utilizando a opĆ§Ć£o -a entraria em conflito com <remoto> em quaisquer ramificaƧƵes locais que foram prefixadas com o mesmo padrĆ£o <remoto>.

  2. for-each-ref pode ter uma ampla gama de opƧƵes. Consulte git-for-each-ref[1] Consulte git-for-each-ref[1]

Os padrƵes normalmente precisam ser citados.

OBSERVAƇƕES

Caso esteja criando uma nova ramificaĆ§Ć£o para o qual deseja alternar imediatamente Ć© mais fĆ”cil usar o comando "git switch" com a sua opĆ§Ć£o -c para fazer a mesma coisa utilizando apenas um Ćŗnico comando.

As opƧƵes --contains, --no-contains, --merged e --no-merged servem para quatro finalidades relacionadas, porƩm diferentes:

  • --contains <commit> Ć© utilizado para encontrar todas as ramificaƧƵes que precisarĆ£o de atenĆ§Ć£o especial caso <commit> precise de um novo "rebase" ou corrigido, uma vez que essas ramificaƧƵes contĆŖm o <commit> informato.

  • --no-contains <commit> Ć© o inverso, isto Ć©, as ramificaƧƵes que nĆ£o contĆŖm o <commit> informado.

  • --merged Ć© utilizado 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.

  • --no-merged Ć© utilizado para encontrar as ramificaƧƵes candidatas a serem mescladas no HEAD, uma vez que essas ramificaƧƵes nĆ£o sĆ£o totalmente contidas pelo HEAD.

Ao combinar diversos filtros a opĆ§Ć£o --contains e a opĆ§Ć£o --no-contains, faz referĆŖncias apenas aos que contenha pelo menos um dos commits --contains e nĆ£o contenha nenhum dos commits mostrados com --no-contains.

Ao combinar diversos filtros a opĆ§Ć£o --merged e a opĆ§Ć£o --no-merged, faz referĆŖncias apenas aos que sejam acessĆ­veis a partir um dos commits --merged e de nenhum dos commits mostrados com --no-merged.

GIT

Parte do conjunto git[1]

scroll-to-top