ver una tag ramas rama que crear git branch task-tracking

una - Descripciones de ramas en git



que es una rama en git (12)

Aquí hay dos sugerencias populares:

  1. git branch --edit-description : No nos gusta esto porque no puedes presionarlo. Tal vez pueda recordar lo que hacen las ramas que creé, pero mi equipo no puede.
  2. Archivo README pr. rama. Esto es un problema durante las combinaciones: súper propensos a fusionar conflictos y estaremos obteniendo README de las sucursales cuando combinemos las entidades principales. Las diferencias entre las ramas también son un dolor.

Hemos decidido crear una branches-readme huérfana branches-readme . Las ramas huérfanas son ramas con su propia historia, puede que las conozca de las ramas de las gh-pages de Github. Esta rama huérfana contiene un solo archivo README . Tiene contenidos como:

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

Es capaz de empujar y fusionar. Ver el README desde cualquier rama con:

git show branches-readme:README

Las desventajas son que necesita retirar la rama huérfana extraña cuando desea actualizar el README y el README no se actualiza automáticamente a medida que las sucursales se renombran, vienen o van. 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 manera similar, los miembros individuales del equipo también pueden crear sus propias branches-$user ramas huérfanas de branches-$user describen sus propias sucursales privadas si así lo desean, siempre que no las empujen al equipo.

Con herramientas adicionales, esto también podría integrarse con la salida de la git branch . A tal fin, tal vez podría considerarse un archivo README.yaml lugar de un README simple.

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


Aquí hay una posible implementación del comando git branches branch al que 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"; }


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

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

Al menos, con un archivo README , puede, para cualquier rama, hacer lo siguiente:

$ git show myBranch:README

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


Estoy bastante seguro de que esa característica no es compatible actualmente. Creo que lo mejor que puede hacer es crear un archivo de texto de descripción, un README básicamente, en la rama que tiene la información que desea.


Git 1.7.9 apoya esto. De las notas de la versión 1.7.9 :

* "git branch --edit-description" can be used to add descriptive text to explain what a topic branch is about.

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

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

Abra un editor y edite el texto para explicar para qué sirve la rama, para que lo utilicen otros comandos (por ejemplo, request-pull ).

Tenga en cuenta que no funcionará para una rama HEAD separada.

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

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

[De @AchalDave] Desafortunadamente, no puede incluir descripciones ya que están almacenadas en su configuración, por lo que no sirve para documentar sucursales en un equipo.


La respuesta seleccionada me parece una exageración. Me sentiría inclinado a mantener un archivo de descripción por rama que sea un archivo de fuente normal controlada, por ejemplo, dev.txt , dev.txt , etc. y si hay un número o ramas difíciles de manejar, crearía una jerarquía para organizarlo mejor .


Puedes adjuntar comentarios a las etiquetas:

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

Por convención, podría tener etiquetas relacionadas con los nombres de sus sucursales o podría usar la etiqueta -f para mantener una etiqueta comentada al principio de sus ramas temáticas.


Si terminas usando README, crea un alias git checkout modificando git checkout para que tu README se muestre cada vez que cambies de rama.

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

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

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



Use git branch --edit-description para establecer o editar una descripción de rama.

Aquí hay una función de shell para mostrar ramas similares a las de git branch pero con las 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 }

A continuación se muestra el aspecto de gb , que se muestra aquí como texto en caso de que la imagen 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 imagen, para que puedas ver los colores:


utilizar:

git branch --list -v

para mostrar la rama aguas arriba:

git branch --list -vv

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


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

El comando definirá una opción global alias.about como expresión de shell. La ejecución de git about <branch> en un repositorio mostrará la descripción de la rama, si está configurada.