Alf*_*ing 18 git github pull-request
有没有办法(从命令行)列出Git/GitHub中PR中更改的所有文件的名称?这将用于查找需要在该PR的Travis CI构建中运行哪些测试.
CI构建在调用脚本之前运行这些命令:
git clone --depth=50 git://github.com/jekyll/jekyll.git jekyll/jekyll
cd jekyll/jekyll
git fetch origin +refs/pull/2615/merge
git checkout -qf FETCH_HEAD
Run Code Online (Sandbox Code Playgroud)
小智 39
使用GitHub cli (gh)你可以运行:
gh pr view 2615 --json files --jq '.files.[].path'
Run Code Online (Sandbox Code Playgroud)
我做了一个,gh alias
因为我经常使用它:
gh alias set pr_files "pr view $1 --json files --jq '.files.[].path'"
Run Code Online (Sandbox Code Playgroud)
然后我用gh pr_files 2615
or来称呼它gh pr_files 2615 | cat
gh pr_files 2615 | cat
Run Code Online (Sandbox Code Playgroud)
zan*_*ock 30
通常,您可以列出在任意两次提交之间更改的文件git diff --name-only
:
(根据澄清编辑.)
这里的问题似乎是确定'合并基础'.如果所有分支都来自master,那么你可以这样做:
git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD master)
这将显示FETCH_HEAD
分支点master
与当前点之间的变化FETCH_HEAD
.我在本地进行了测试,公关分支从master
我认为它应该工作.
小智 5
Chrome 控制台...
注意:如果 Github 更改页面中的标签/类/ID,这将中断。
const fileElems = document.querySelectorAll('#files div.js-diff-progressive-container div.file div.file-header div.file-info a.Link--primary');
const filePaths = [];
for (let a of fileElems) {
filePaths.push(a.title);
}
const filePathsStr = filePaths.join('\n');
console.log(filePathsStr);
copy(filePathsStr);
console.log('Copied to the clipboard as well ');
Run Code Online (Sandbox Code Playgroud)
特别是对于 GitHub,这可以使用 REST API 来完成:
GET /repos/:owner/:repo/pulls/:pull_number/files
Run Code Online (Sandbox Code Playgroud)
为此,您可以使用GitHub 库之一。
归档时间: |
|
查看次数: |
18341 次 |
最近记录: |