查找Git分支的创建者

228

我想知道是谁创建了一个分支。

我可以用以下方式部分地完成:

git branch -a | xargs -L 1 bash -c 'echo "$1 `git log --pretty=format:"%H %an" $1^..$1`"' _

然而,这将返回每个分支的最后一名提交者,而不一定是创建该分支的人。


13
在Git中,无法获取分支的作者/创建者。你正在做的是获取该分支头部的作者。一旦有人在那里推送了新的提交,它就会改变。 - sylvain.joyeux
2
免责声明:此问题/答案的隐含假设是“在每个分支只有一个人的工作流中”。在其他至少两个同事共享一个分支的工作流中,这些信息(分支创建者)无法通过git获得,上述答案可能会导致某人产生错误的假设。 - Romain Valeri
13个回答

1
如果您正在使用Azure Devops,则可以使用REST API检索此信息:
$baseAzdoURI/_apis/git/repositories/$repositoryName/refs

在返回的 JSON 数组中,创建者名称将位于 [collectionElement].Creator.DisplayName 内。
例如:
        {
        "name": "refs/heads/branchname",
        "objectId": "GUID",
        "creator": {
            "displayName": **"John Deere"**,
            "url": "$baseAzdoURI/_apis/Identities/GUID",
            "_links": {
                "avatar": {
                    "href": "$baseAzdoURI/_apis/GraphProfile/MemberAvatars/BASE64STUFF"
                }
            },
            "id": "guid",
            "uniqueName": "DOMAIN\\USERNAME",
            "imageUrl": "$baseAzdoURI/_api/_common/identityImage?id=guid",
            "descriptor": "BASE64STUFF"
        },
        "url": "$baseAzdoURI/GUID/_apis/git/repositories/GUID/refs?filter=heads%2FBRANCHNAME"
    },

参考:https://learn.microsoft.com/zh-cn/rest/api/azure/devops/git/refs/list?view=azure-devops-rest-7.0


请问您是如何设置这项服务的?我尝试使用OAuth2.0,但在授权URL中出现了“客户端检测到一个潜在危险的请求路径值(&)”。 - Tommy Leong
你好Tommy,我正在使用一个AzDO PAT并创建一个基本的授权头部,即 @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($azdoPAT)")) }不确定这是否回答了你的问题,请告诉我如果情况不是这样的 :) - P-L
你好Tommy,我正在使用AzDO PAT并创建一个基本的授权头部,即@{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($azdoPAT)")) }不确定这是否回答了你的问题,如果不是的话,请告诉我 :) - undefined

0
据我所知,你只能查看自己创建的分支。这可以通过.git/ref/heads/中的第一行来确定。如果以“Created from HEAD”结尾,则表示你是创建者。

0

对于那些寻找 DESC 的人...这似乎有效 --sort=-

感谢格式化,我是新手...我的眼睛有点充血了

git for-each-ref --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p)    %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=-authordate refs/remotes

更多参考:https://dev59.com/wG435IYBdhLWcg3w1juV#5188364


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