Descripciones de twigs en git

¿Hay alguna manera en git de tener una "descripción" para las sucursales? Aunque trato de usar nombres descriptivos, trabajar durante un time en una sola twig a veces amortigua mi memory de por qué hice algunas de las otras twigs temáticas. Intento usar nombres descriptivos para las twigs, pero creo que una 'descripción' (nota breve sobre el propósito de la twig) sería agradable.

Git 1.7.9 es compatible con esto. De las notas de la versión 1.7.9 :

  * "git branch --edit-description" se puede usar para agregar text descriptivo
    para explicar de qué se trata una twig temática.

Puede ver esa característica introducida en septiembre de 2011, con commits 6f9a332 , 739453a3 , b7200e8 :

struct branch_desc_cb { const char *config_name; const char *value; }; --edit-description:: 

Abra un editor y edite el text para explicar para qué es la bifurcación, para ser utilizado por otros commands (por ejemplo, request-pull ).

Tenga en count que no funcionará para una twig HEAD separada.

Esa descripción es utilizada por el script request-pull: ver commit c016814783 , pero también git merge --log .

request-pull es un script utilizado para resumir los cambios entre dos confirmaciones para el resultado estándar, e incluye la URL dada en el resumen generado.

Si terminas usando README, crea un git alias que modifique la git checkout para que tu LÉAME se muestre cada vez que cambies de twig.

Por ejemplo, agregue esto en ~ / .gitconfig, debajo de [alias]

 cor = !sh -c 'git checkout $1 && cat README' - 

Después de esto, puede ejecutar git cor <branch_name> para cambiar de twig y visualizar el README de la twig a la que está cambiando.

El README sugerido por Chris J puede funcionar, siempre que esté configurado con un controller de combinación personalizado definido en .gitattribute .
De esta forma, la versión local del README siempre se conserva durante las fusiones.

La "descripción" para las sucursales también se conoce como un "comentario" asociado con los metadatos, y no es compatible.

Al less, con un file README , puede, para cualquier sucursal, hacer un:

 $ git show myBranch:README 

Si su README está en el directory raíz de su REPO, funcionará desde cualquier ruta, ya que la ruta utilizada por git show es absoluta desde el directory superior de dicho repository.

Utilice la git branch --edit-description para establecer o editar una descripción de twig.

Aquí hay una function de shell para mostrar twigs similares a git branch pero con descripciones adjuntas.

 # Shows branches with descriptions function gb() { branches=$(git for-each-ref --format='%(refname)' refs/heads/ | sed 's|refs/heads/||') for branch in $branches; do desc=$(git config branch.$branch.description) if [ $branch == $(git rev-parse --abbrev-ref HEAD) ]; then branch="* \033[0;32m$branch\033[0m" else branch=" $branch" fi echo -e "$branch \033[0;36m$desc\033[0m" done } 

Aquí se muestra el aspecto de gb , que se muestra aquí como text en caso de que la image se pudra:

 $ gb * logging Log order details. Waiting for clarification from business. master sprocket Adding sprockets to the parts list. Pending QA approval. 

Y como una image, para que pueda ver los colors:

enter image description here

 git config --global --add alias.about '!describe() { git config branch."$1".description; }; describe' 

Command definirá un alias.about opción alias.about como expresión de shell. La ejecución de git about <branch> en un repository mostrará la descripción de la twig si está configurada.

Hay dos sugerencias populares aquí:

  1. git branch --edit-description : No nos gusta esto porque no puedes presionarlo. Quizás pueda recordar qué hacen las twigs que creé, pero mi equipo no puede.
  2. Archivo README pr. twig. Esto es un problema durante las fusiones: Súper propenso a fusionar conflictos y README de README de las twigs cuando fusionemos twigs de características. Diferencias entre twigs también son un dolor.

Hemos decidido crear una branches-readme huérfanas. Las twigs huérfanas son twigs con su propia historia separada; es posible que las conozcas de las twigs de gh-pages de Github. Esta twig huérfana contiene un solo file README . Tiene contenidos como:

 master: The default branch mojolicious: Start using Mojolicious branch-whatever: Description of the whatever branch 

Es push-able y fácil de combinar. Vea el README desde cualquier sucursal con:

 git show branches-readme:README 

Las desventajas son que debe verificar la extraña sucursal huérfana cuando desea actualizar el README y el README no se actualiza automáticamente a medida que se renombra el nombre de las sucursales, ya sea que vengan o no. Eso está bien para nosotros, sin embargo.

Hazlo como:

 git checkout --orphan branches-readme # All the files from the old branch are marked for addition - skip that git reset --hard # There are no files yet - an empty branch ls vi README # put in contents similar to above git add README git commit -m "Initial description of the branches we already have" git push origin branches-readme # get all your original files back git checkout master 

De forma similar, los miembros individuales del equipo también pueden crear sus propias branches-$user sucursales huérfanas de branches-$user describen sus propias sucursales privadas si lo desean, siempre y cuando no las empujen al equipo.

Con herramientas adicionales, esto también podría integrarse con la salida de la git branch . Para ese fin, tal vez se podría considerar un file README.yaml lugar de un file README simple.

Aquí hay una posible implementación del command git branches Greg Hewgill aludió:

 #!/usr/bin/perl sub clean { map { s/^[\s\*]*\s// } @_; map { s/\s*$// } @_; return @_; } sub descr { $_ = `git config branch.@_.description`; s/\s*$//; return $_; }; sub indent { $_ = shift; s/^/ /mg; return $_; }; my @branches = clean `git branch --color=never --list`; my %merged = map { $_ => 1 } clean `git branch --color=never --merged`; for my $branch (@branches) { my $asis = `git branch --list --color=always $branch`; $asis =~ s/\s*$//; print " $asis"; print " \033[33m(merged)\033[0m" if ($merged{$branch} and $branch ne "master"); print "\n"; print indent descr $branch; print "\n"; print "\n"; } 

Puede adjuntar comentarios a las tags:

 git tag -m 'this was a very good commit' tag1 

Por convención, podría tener tags relacionadas con los nombres de su twig o podría usar la label -f para mantener una label comentada en la parte superior de las twigs de sus temas.

utilizar:

 git branch --list -v 

para mostrar la twig aguas arriba:

 git branch --list -vv 

agregue -r para mostrar solo controles remotos o -a para mostrar controles remotos y locales

Estoy bastante seguro de que la function no es compatible actualmente. Creo que su mejor opción es crear un file de text de descripción, un LÉAME básicamente, en la sucursal que tenga la información que desee.

La respuesta seleccionada me parece exagerada. Me inclinaría a mantener un file de descripción por twig que es un file controlado por fuente normal, digamos master.txt , dev.txt , etc. y si hay un número o twigs poco manejables crearía una jerarquía para organizarlo mejor .

Solo usa:

 git config branch.<branch name>.description 

Para otorgar crédito donde se debe crédito: https://glebbahmutov.com/blog/git-branches-with-descriptions/