Git 有没有办法从命令行获取pull请求中的所有更改?
我必须找到一种从命令行收集pull请求中所有代码差异的方法。从GithubUI我知道我可以很容易地查看差异和分支名称,但是,我必须从命令行自动化一些任务。我尝试使用Git 有没有办法从命令行获取pull请求中的所有更改?,git,Git,我必须找到一种从命令行收集pull请求中所有代码差异的方法。从GithubUI我知道我可以很容易地查看差异和分支名称,但是,我必须从命令行自动化一些任务。我尝试使用git diff branch1..branch2获取PR中所有修改的文件和代码更改。但是如何从命令行中找出branch1和branch2?GitHub公开了拉取请求中的一些技术参考 对于打开的PR(我认为没有冲突),您可以获取refs/pull//mergeref以获得结果合并,然后检查它与第一个父级之间的差异: #假设“源”遥控器
git diff branch1..branch2
获取PR中所有修改的文件和代码更改。但是如何从命令行中找出branch1和branch2?GitHub公开了拉取请求中的一些技术参考
对于打开的PR(我认为没有冲突),您可以获取refs/pull//merge
ref以获得结果合并,然后检查它与第一个父级之间的差异:
#假设“源”遥控器是包含PR的遥控器
#(而不是公关来源的分支)
git获取原点引用/pull/123/merge
git diff取头^1..取头
对于关闭的PR,此ref不再可用,但仍然存在refs/pull//head
ref。然后,您必须查看提交图以找到合并提交(或使用一些魔术来获得子提交):
git获取原点refs/pull/123/head
MERGE\u COMMIT=$(git log--format='%H%P'--all | grep“$(git rev parse FETCH\u HEAD)\$“\124; cut-f1-d')
git diff FETCH_HEAD..${MERGE_COMMIT}
还有一种不使用git的解决方案:从GitHub API()获取差异:
curl-L-u-H“接受:应用程序/vnd.github.v3.diff”https://api.github.com/repos///pulls/
Pull请求不是Git功能。在不同的托管站点之间,获取所需内容的机制是不同的。不过,如果您正在寻找特定于GitHub的方法,GitHub现在至少通过gh
脚本中的内容获得了半官方的支持。