Eu quero descobrir quem criou um ramo.
Eu sou capaz de fazer isso com:
git branch -a | xargs -L 1 bash -c 'echo "$1 `git log --pretty=format:"%H %an" $1^..$1`"' _
No entanto, isso retorna o último commit por ramificação, não necessariamente a pessoa que criou a ramificação.
git
git-branch
Ofir Farchy
fonte
fonte
Respostas:
Uma ramificação não passa de um ponteiro de confirmação. Como tal, não rastreia metadados como "quem me criou". Veja por si mesmo. Experimente
cat .git/refs/heads/<branch>
no seu repositório.Dito isso, se você realmente deseja rastrear essas informações em seu repositório, consulte as descrições dos ramos. Eles permitem anexar metadados arbitrários às ramificações, pelo menos localmente.
Também a resposta da DarVar abaixo é uma maneira muito inteligente de obter essas informações.
fonte
Lista ramificações remotas do Git por autor, classificadas por data do committer:
fonte
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 }'
(ideia tem de stackoverflow.com/a/3631819 - pode ser necessário ajustar os números no printf awk dependendo comprimentos datetime / nome do autor max)Ajustei as respostas anteriores usando a
--sort
bandeira e adicionei um pouco de cor / formatação:fonte
fonte
Adicionando à resposta do DarVar :
PS: Usamos o AWK para imprimir bastante o autor e o ramo remoto.
fonte
Você pode descobrir quem criou uma ramificação em seu repositório local ,
Exemplo de saída:
Mas isso provavelmente é inútil, pois normalmente em seu repositório local, apenas você cria ramificações.
As informações são armazenadas em ./.git/logs/refs/heads/ branch . Exemplo de conteúdo:
A última confirmação neste exemplo foi do usuário "b" enquanto a ramificação "b2" foi criada pelo usuário "a". Se você alterar seu nome de usuário, poderá verificar se o git reflog obtém as informações do log e não usa o usuário local.
Não conheço nenhuma possibilidade de transmitir essas informações de log local para um repositório central.
fonte
Podemos descobrir com base no authorname
fonte
Assumindo:
master
master
aindafonte
Eu sei que esse não é inteiramente o escopo da pergunta, mas se você achar que é necessário filtrar apenas commits por um autor específico, sempre poderá canalizar para grep :)
feliz codificação! :)
fonte
para quem procura um DESC ... parece funcionar
--sort=-
tipo de formatação, novo nisso ... meus olhos estão perdendo um pouco de sangue
ref mais: https://stackoverflow.com/a/5188364/10643471
fonte
Tanto quanto eu sei, você pode ver se você é o criador de apenas um ramo. Isso é indicado pela primeira linha em .git / ref / heads / <branch>. Se terminar com "Created from HEAD", você será o criador.
fonte