Existe uma maneira no Git de ter uma 'descrição' para ramificações?
Enquanto tento usar nomes descritivos, trabalhar por um tempo em um único ramo às vezes diminui minha memória de por que fiz alguns dos outros tópicos. Eu tento usar nomes descritivos para os ramos, mas acho que uma 'descrição' (breve observação sobre o objetivo do ramo) seria legal.
git
branch
task-tracking
Noufal Ibrahim
fonte
fonte
Respostas:
O Git 1.7.9 suporta isso. Das notas de versão 1.7.9 :
Você pode ver esse recurso introduzido em setembro de 2011, com confirmações 6f9a332 , 739453a3 , b7200e8 :
Observe que ele não funcionará para uma ramificação HEAD desanexada.
Essa descrição é usada pelo script request-pull: consulte commit c016814783 , mas também
git merge --log
.[De @AchalDave] Infelizmente, você não pode enviar descrições porque elas são armazenadas em sua configuração, tornando-a inútil para documentar ramificações em uma equipe.
fonte
git config branch.topic.description
para mostrar a descrição do ramotopic
. Está armazenado no.git/config
arquivo.git branch
mostraria as descrições na lista ...Se você fazer acabar usando o README, criar um git apelido modificando
git checkout
para que seu README é exibido toda vez que você mudar ramos.Por exemplo, adicione isso em ~ / .gitconfig, em [alias]
Depois disso, você pode executar
git cor <branch_name>
para alternar a ramificação e exibir o README da ramificação para a qual está alternando.fonte
1.7.11-msysgit.1
). Estou usando $ 0 em vez disso. E está tudo bem.sh -c
"; por exemplo,.alias = "!f() { git checkout "${1}" && cat README.md; }; f"
(colchetes e aspas desnecessários neste caso, apenas incluídos para conclusão no caso de serem necessários para algo mais complicado.)~/.gitconfig
, under[alias]
e o nome do alias é de fato (e compreensivelmente confuso) chamadoalias
da minha configuração real (eu deveria ter renomeadocor
para que este exemplo seja consistente). Meualias
alias real é:alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"
Uso:git alias {alias_name}
ougit alias {alias_regexp}
. Análogo aoalias
comando bash , por exemplo,$ alias ll
rendimentos (para mim)alias ll='ls -l'
:; e$ git alias br
rendimentos:alias.br branch -v --list
(poderia também utilizar:$ git alias 'b.*'
)Use
git branch --edit-description
para definir ou editar uma descrição da ramificação.Aqui está uma função shell para mostrar ramificações semelhantes a,
git branch
mas com descrições anexadas.Aqui está o que
gb
parece, mostrado aqui como texto, caso a imagem apodreça:E como uma imagem, para que você possa ver as cores:
fonte
O
README
sugerido por Chris J pode funcionar, desde que configurado com um driver de mesclagem personalizado definido em a.gitattribute
.Dessa forma, a versão local do
README
sempre é preservada durante as mesclagens.A "descrição" para ramificações também é conhecida como um "comentário" associado a esses metadados e não é suportada.
Pelo menos, com um
README
arquivo, você pode, para qualquer ramificação, fazer um:Se o seu README estiver no diretório raiz do seu REPO, ele funcionará em qualquer caminho, pois o caminho usado
git show
é absoluto no diretório superior do referido repositório.fonte
.gitattributes
arquivo no seu repositório, então não, isso funcionaria para todos. Infelizmente, isso parece não funcionar ao mesclar através de algumas interfaces baseadas na Web, por exemplo, ao usar solicitações pull no Azure DevOps.Existem duas sugestões populares aqui:
git branch --edit-description
: Nós não gostamos disso porque você não pode pressioná-lo. Talvez eu me lembre do que os ramos que criei fazem, mas minha equipe com certeza não consegue.README
arquivo pr. ramo. Isso é um problema durante as mesclagens: super-propenso a mesclar conflitos e estaremos entrando emREADME
ramificações quando mesclar ramificações de recursos. As diferenças entre os galhos também são uma dor.Decidimos criar um
branches-readme
ramo órfão . Ramos órfãos são ramos com sua própria história separada - você pode conhecê-los dosgh-pages
ramos do Github . Este ramo órfão contém um únicoREADME
arquivo. Possui conteúdos como:É capaz de empurrar e de mesclar. Veja o
README
de qualquer ramo com:As desvantagens são que você precisa fazer check-out do ramo órfão estranho quando deseja atualizar o
README
eREADME
não é atualizado automaticamente à medida que os ramos são renomeados, vêm ou vão. Isso é bom para nós, no entanto.Faça como:
Da mesma forma, membros individuais da equipe também podem criar seus próprios
branches-$user
ramos órfãos, descrevendo seus próprios ramos particulares, se assim o desejarem, desde que não os enviem para a equipe.Com outras ferramentas, isso também pode ser integrado à saída de
git branch
. Para esse fim, talvez umREADME.yaml
arquivo possa ser considerado em vez de simplesREADME
.fonte
O comando definirá uma opção global
alias.about
como expressão de shell. A execuçãogit about <branch>
em um repositório exibirá a descrição da ramificação, se configurada.fonte
"!describe() { git config branch.\"$(git symbolic-ref --short -q HEAD)\".description; }; describe"
git config --global --add alias.about '!describe() { git config branch."$(git symbolic-ref --short -q HEAD)".description; }; describe'
Aqui está uma possível implementação do
git branches
comando que Greg Hewgill mencionou:fonte
Aqui está um
git
alias
que permite definir e ler descrições no ramo atual:Uso / exemplos:
Agradecimentos especiais a @Felicio pela resposta que me iniciou.
fonte
Você pode anexar comentários às tags:
Por convenção, você pode ter tags relacionadas aos nomes de suas ramificações ou usar a tag -f para manter uma tag comentada no início das ramificações de tópicos.
fonte
Digamos que você queira criar uma ramificação
fonte
Tenho certeza de que esse recurso não é suportado no momento. Acho que sua melhor aposta é criar um arquivo de texto de descrição, basicamente um README, no ramo que possui as informações que você deseja.
fonte
A resposta selecionada parece um exagero para mim. Eu estaria inclinado a manter um arquivo de descrição por ramo que é um arquivo normal controlado fonte, digamos
master.txt
,dev.txt
, etc. e se houver um número de difícil controle ou ramos eu criar uma hierarquia para organizar melhor isso.fonte
git show master:dev.txt
que não é mais simples que a resposta selecionada.Apenas use:
Para dar crédito onde o crédito é devido: https://glebbahmutov.com/blog/git-branches-with-descriptions/
fonte
Usar
para mostrar um ramo upstream:
Adicione
-r
para mostrar apenas controles remotos ou-a
para mostrar controles remotos e local.fonte