如何从Git命令行找到pull请求的源fork?

如何从Git命令行找到pull请求的源fork?,git,command-line,pull-request,Git,Command Line,Pull Request,我们的开发团队遵循一个基于fork的开发模型,每个开发人员都使用自己的fork,并为每个功能向中央存储库创建pull请求。我可以使用如下命令获取针对给定回购的所有拉取请求: git fetch +refs/pull-requests/*/from:refs/remotes/origin/pr/* 这会将该远程设备的所有拉取请求放入.git/refs/remotes/origin/pr目录,例如,.git/refs/remotes/origin/pr/7217,它是一个包含单个提交散列的文本文件

我们的开发团队遵循一个基于fork的开发模型,每个开发人员都使用自己的fork,并为每个功能向中央存储库创建pull请求。我可以使用如下命令获取针对给定回购的所有拉取请求:

git fetch +refs/pull-requests/*/from:refs/remotes/origin/pr/*
这会将该远程设备的所有拉取请求放入.git/refs/remotes/origin/pr目录,例如,.git/refs/remotes/origin/pr/7217,它是一个包含单个提交散列的文本文件


如何使用Git命令行找到这个pull请求的源fork?我想找到打开拉取请求的开发人员。

也许您应该先设置用户名和用户电子邮件

git config user.name xxxx    
git config user.email xxxx@xxx    

我将其解释为如何在分支上找到第一个新提交。为此,我将结合git merge base来获得master和pr分支之间的第一个公共提交,然后使用git rev list来查找分支中的新提交

git rev-list $(git merge-base master origin/pr/7217)..origin/pr/7217 | tail -1
版本列表将在pr分支上打印所有新的SHA,因此通过管道将其传输到tail-1只会为您提供第一个。您可以运行gitshow或其他命令来查看它

如果您需要编写一些脚本,应该可以达到目的


如果您没有编写脚本,只想查看PR上的所有提交,那么可以将rev list更改为log,并去掉tail的管道。这将为您提供一个PR提交的格式化列表

我想从Git命令行找出谁提交了给定的请求,比如PR 7217。上述解决方案将我的用户名和电子邮件与我的提交相关联。谢谢你的回复。