列出Git / GitHub中拉取请求中更改的所有文件

时间:2014-08-01 01:38:15

标签: 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

7 个答案:

答案 0 :(得分:25)

通常,您可以列出使用git diff --name-only 的任意两次提交之间更改的文件:

How to list the file names only that changed between two commits?

(根据澄清编辑。)

这里的问题似乎是确定合并基础'。如果所有分支都来自master,那么你可以这样做:

git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD master)

这将显示FETCH_HEADmaster分支到当前FETCH_HEAD的点之间的变化。我在本地进行了测试,公关分支从master开始,我相信它应该有用。

答案 1 :(得分:1)

谷歌搜索发送给我这里虽然问题略有不同。

这个问题[详情]有命令行。 但是,我需要文件列表,如果我能在GUI中看到它就可以了。

这是一种查看GUI中文件列表的方法:

  1. 打开拉取请求

  2. 单击[已更改文件]选项卡

      

    会话0提交3 [文件已更改] 8

  3. 点击[文件已更改]

    的以下行中的'n个文件'后面的下拉列表
      

    所有提交的更改v ... [8个文件v] ... +638 -266

  4. (点击v,下拉,上面一行中的文件后)

答案 2 :(得分:1)

我无法找到一种方法来仅查看GitHub中已更改文件的列表(即没有diff和注释),但是可以使用浏览器控制台中的这种单一代码来完成:

Array.from(document.getElementsByClassName('js-details-target')).forEach((e) => {e.click();})

这将折叠所有diff块,仅保留文件名。

答案 3 :(得分:1)

这是简单的方法:

  1. 在url以下生成POST请求 https://dev.azure.com/**{OranizationName}**/_apis/Contribution/HierarchyQuery/project/**{ProjectID}**?api-version=5.0-preview.1
  2. 请参考此链接以获取所需的任何值 https://docs.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-5.1
  3. 在Json下面用作请求参数 {“ contributionIds”:[“ ms.vss-code-web.pr-detail-data-provider”],“ dataProviderContext”:{“ properties”:{“ pullRequestId”: {PullRequestID} , “ repositoryId”:“ {repositoryId} ”,“ sourcePage”:{“ url”:“ https://dev.azure.com/{OrganizationName}/ {ProjectName} / _ git / {RepositoryName} / pullrequest / {PullRequestID} ?_ a = files“}}}}
  4. 发送POST请求
  5. 从突出显示的属性中获取计数以获取每个PR的文件计数 enter image description here

6。在Azure DevOps中创建访问令牌并将其用于身份验证 7.提供对令牌的代码和令牌管理访问权限

答案 4 :(得分:1)

对于GitHub,this can be accomplished using the REST API

function _sortList({ sortBy, sortDirection }: SortInfo) {

为此,您可以使用GitHub libraries之一。

答案 5 :(得分:0)

Chrome控制台...

注意:如果Github更改页面中的标签/类/ ID,则会中断此操作。

strcpy

答案 6 :(得分:0)

使用 GitHub cli (gh) 你可以运行:

gh pr view 2615 --json files --jq '.files.[].path'

我制作了一个 gh alias,因为我经常使用它:

gh alias set pr_files "pr view $1 --json files --jq '.files.[].path'"

然后我用 gh pr_files 2615gh pr_files 2615 | cat

调用它
gh pr_files 2615 | cat