查找在远程Git仓库上创建了一个分支的人

6

我正在从git远程库中修剪一些分支。

如何查找在远程git仓库上创建分支的人?

也许有类似于git branch -r --show-user的东西吗?

3个回答

6
答案非常简单:
git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' | sort

来源: 查找Git分支创建者


1
这里给出了一些已经在远程删除的分支,如何在结果中消除它们? - Pand005
@Pand005 我会用 git branch -d <分支名称> 命令将它们删除。 - Rafs
4
注意:此命令无法找到分支的创建者,只能找到最后提交代码的人。 - Rafs

3

请查看.git/logs/refs/heads/BRANCHNAME。第一行应该包含有关分支创建的信息,包括创建它的用户以及从哪个提交中“分叉”的分支。

git reflog可用于以编程方式检查文件;有关详细信息,请参见git help reflog


4
除了本地分支的信息,我认为你在这里找不到其它有用的信息。关于远程创建的分支将没有任何信息。 - larsks

1
我认为在所有情况下都无法给出完全通用的答案。请考虑:
A----B----C
      \
       D----E----F
             \
              G----H----I

我创建的提交位于哪个分支?它是从E还是B创建的分支。这两种情况都有可能 - 在一种情况下,您在B处创建了一个在D处创建的分支,然后在E处创建了另一个在G处创建的分支;在另一种情况下,您在B处创建了D,然后在E处创建了F - 换句话说,相同的树可以像这样表示:

A----B----C
      \
       D----E----G----H----I
             \
              F

Or even this:

A----B----D----E----G----H----I
      \         \
       C         F

所有三个都是拓扑等价的,它们会给出不同的答案:“分支I从哪里开始?”...

1
分支“I”是从第一个分支的提交开始的。仅从dag上看不出,但该信息由git保留。 - chepner
如果所有分支都是在本地创建的,则为True。但是,如果userA@repoA创建分支,将其推送到origin,然后userB@repoB获取并跟踪该分支,并添加更多内容,则userB@repoB可能无法轻松获取该信息,需要进行相当大量的取证工作...在一般情况下,您只有DAG。日期时间戳等可能会添加一些附加信息,但通常不是一个简单的一行代码... - twalberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接