362 votes

Descriptions de branches en git

Existe-t-il un moyen d'avoir une 'description' pour les succursales? Tandis que j'essaie d'utiliser des noms descriptifs, le fait de travailler pendant un certain temps sur une seule branche amoindrit parfois ma mémoire des raisons pour lesquelles j'ai créé certaines des autres branches thématiques. J'essaie d'utiliser des noms descriptifs pour les branches mais je pense qu'une «description» (note courte sur le but de la branche) serait bien.

246voto

Greg Hewgill Points 356191

Git 1.7.9 (actuellement rc1) prend en charge cette. À partir de la 1.7.9 notes de publication:

 * "git branch --edit-description" peut être utilisé pour ajouter un texte descriptif
 pour expliquer ce qu'est un sujet de branche.

Vous pouvez voir que la fonctionnalité a été présenté en septembre 2011, avec s'engage 6f9a332, 739453a3, b7200e8:

struct branch_desc_cb {
  const char *config_name;
  const char *value;
};

--edit-description::

Ouvrez un éditeur de texte et modifier le texte pour expliquer ce que la direction générale est, par plusieurs autres commandes (par exemple, request-pull).

Notez que cela ne fonctionne pas pour un décollement de la TÊTE de la branche.

Cette description est utilisé par le script demande-pull: voir commettre c016814783, mais aussi git merge --log.
request-pull est un script utilisé pour récapitule les changements entre les deux s'engage vers la sortie standard, et inclut l'URL donnée dans le générés résumé.

40voto

tta Points 413

Si vous finissez à l' aide du README, créez un alias modifiant git checkout afin que votre README est affiché chaque fois que vous changez de branches.

Par exemple, ajoutez ceci dans ~ / .gitconfig, sous [alias]

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

Après cela, vous pouvez exécuter git cor <branch_name> pour changer de branche et afficher le fichier README de la branche vers laquelle vous passez.

40voto

jsageryd Points 458

Utilisez git branch --edit-description pour définir ou modifier une description de branche.

Voici une fonction shell pour montrer des branches similaires à git branch mais avec des descriptions ajoutées.

 # 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
}
 

31voto

VonC Points 414372

L' README proposé par Chris J peut fonctionner, à condition qu'il soit paramétré avec un custom de fusion pilote définie dans un .gitattribute.
De cette façon, le local de la version de l' README est toujours conservé pendant les fusions.

La "description" de branches est également connu comme un "commentaire" associé à cette méta-données, et il n'est pas pris en charge.

Au moins, avec un README le fichier, vous pouvez, pour chaque branche:

$ git show myBranch:README

Si votre fichier lisez-moi est dans le répertoire racine de votre dépôt, il fonctionnera à partir de n'importe quel chemin, depuis le chemin d'accès utilisé par git show est un droit absolu du répertoire de dit repo.

6voto

Owen Points 14439

Voici une implémentation possible de la commande git branches Greg Hewgill a fait allusion:

 #!/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";
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X