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.
Réponses
Trop de publicités?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é.
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.
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
}
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.
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";
}