ank*_*itd 2 git version-control commit github pull-request
我正在寻找一些命令,告诉我在单个拉取请求中提交的文件数量.我想从一开始就知道单个拉取请求中的文件数量.
在现实生活场景中解释的问题:让我们说某些myProject人提出了一个拉动请求编号100,该编号在15文件中有变化.
我正在寻找一个命令,列出从1到100的所有拉取请求与更改文件的计数.
即
您可以获得这样的远程拉取请求列表:
git ls-remote origin 'pull/*/head'
Run Code Online (Sandbox Code Playgroud)
(假设这origin是您的GitHub遥控器的名称)
对于给定的提交,您可以获得如下所示的已更改文件列表:
git show --pretty=format:'' --name-only <ref>
Run Code Online (Sandbox Code Playgroud)
您可以将以上信息放在一个shell脚本中:
git ls-remote origin 'pull/*/head' | awk '{print $2}' |
while read ref; do
pr=$(echo $ref | cut -d/ -f3)
git fetch origin $ref > /dev/null
files_changed=$(git show --pretty=format:'' --name-only FETCH_HEAD|wc -l)
echo "PR number $pr has changes in $files_changed files"
done
Run Code Online (Sandbox Code Playgroud)
这在stdout上产生输出,如:
PR number 1 has changes in 4 files
PR number 10 has changes in 1 files
PR number 11 has changes in 4 files
PR number 12 has changes in 7 files
PR number 13 has changes in 5 files
Run Code Online (Sandbox Code Playgroud)
(stderr上也有输出,你可以用标准的shell i/o重定向来处理).
这几乎可以满足您的需求,主要有一点需要注意:即使在关闭后,拉请求也会在远程GitHub存储库中保留为refs,因此这将始终迭代过去和现在的每个可用拉取请求.
您可以通过缓存本地有关您之前检查过的最高PR编号的信息,然后跳过所有较低的PR来解决此问题.
| 归档时间: |
|
| 查看次数: |
11094 次 |
| 最近记录: |