Je veux savoir qui a créé une succursale.
Je suis en quelque sorte capable de le faire avec:
git branch -a | xargs -L 1 bash -c 'echo "$1 `git log --pretty=format:"%H %an" $1^..$1`"' _
Cependant, cela renvoie le dernier committer par branche, pas nécessairement la personne qui a créé la branche.
git
git-branch
Ofir Farchy
la source
la source
Réponses:
Une branche n'est rien d'autre qu'un pointeur de validation. En tant que tel, il ne suit pas les métadonnées telles que «qui m'a créé». Voir par vous-même. Essayez
cat .git/refs/heads/<branch>
dans votre référentiel.Cela dit, si vous aimez vraiment suivre ces informations dans votre référentiel, consultez les descriptions des branches. Ils vous permettent d'attacher des métadonnées arbitraires aux branches, au moins localement.
Aussi la réponse de DarVar ci - dessous est un moyen très intelligent pour obtenir ces renseignements.
la source
Liste des branches Git distantes par auteur triées par date de validation:
la source
git for-each-ref --format='%(committerdate)%09%(authorname)%09%(refname)' | sort -k5n -k2M -k3n -k4n | grep remotes | awk -F "\t" '{ printf "%-32s %-27s %s\n", $1, $2, $3 }'
(idée de stackoverflow.com/a/3631819 - peut avoir besoin d'ajuster les nombres dans awk printf en fonction de la longueur maximale des noms de date / auteur)J'ai modifié les réponses précédentes en utilisant le
--sort
drapeau et j'ai ajouté une couleur / mise en forme:la source
la source
Ajout à la réponse de DarVar :
PS: Nous avons utilisé AWK pour imprimer joliment l'auteur et la branche distante.
la source
Vous pouvez savoir qui a créé une branche dans votre référentiel local en
Exemple de sortie:
Mais cela est probablement inutile car généralement sur votre référentiel local, vous ne créez que des branches.
Les informations sont stockées dans ./.git/logs/refs/heads/ branch . Exemple de contenu:
Le dernier commit de cet exemple provenait de l'utilisateur "b" tandis que la branche "b2" était créée par l'utilisateur "a". Si vous modifiez votre nom d'utilisateur, vous pouvez vérifier que git reflog prend les informations du journal et n'utilise pas l'utilisateur local.
Je ne connais aucune possibilité de transmettre ces informations de journal local à un référentiel central.
la source
Nous pouvons le découvrir sur la base du nom automatique
la source
En supposant:
master
master
encorela source
Je sais que ce n'est pas entièrement la portée de la question, mais si vous trouvez le besoin de filtrer uniquement les commits par un auteur spécifique, vous pouvez toujours diriger vers grep :)
bon codage! :)
la source
pour ceux qui recherchent un DESC ... cela semble fonctionner
--sort=-
ty pour le formatage, nouveau dans ce domaine ... mes yeux perdent une partie de son sang injecté
ref: https://stackoverflow.com/a/5188364/10643471
la source
Autant que je sache, vous verrez peut-être si vous êtes le créateur d'une branche uniquement. Ceci est indiqué par la première ligne dans .git / ref / heads / <branch>. S'il se termine par "Créé à partir de HEAD", vous êtes le créateur.
la source