如何从Git Pull请求中查看所有已修改的文件?

时间:2016-12-14 09:50:57

标签: git github

我感兴趣的是,与当前的主分支相比,在(GitHub)拉取请求中看到了哪些文件被修改过。

如果没有在本地检出或更改文件,这将是最佳的 - 只显示在PR中触摸了哪些文件(包括路径的文件名)。

如何实现这一目标?

3 个答案:

答案 0 :(得分:5)

我的一般操作:在raith请求的github页面上,您会在底部找到一个说明"专家提示!将.patch或.diff添加到Git明文视图的URL末尾。"。 .patch的url类似于:

https://github.com/git/git/pull/309.patch

(所以从命令行你可以简单地替换拉取请求号,并且实际上不需要每次都查看github页面。)

获得此网址后,请使用以下内容:

curl -s -L https://github.com/git/git/pull/309.patch | git apply --stat -

将显示类似于的输出:

git-p4.py |   36 ++++++++++++++++++++++++++++++------
1 file changed, 30 insertions(+), 6 deletions(-)

答案 1 :(得分:1)

此信息全部在您当地的git历史记录中,需要两个步骤(可以合并)

最后一次常见提交是什么

用于创建PR分支的提交对于知道要比较的内容是必要的,以找到此用法git merge-base。如果分支已经存在一段时间,其他更改已合并到master,并且PR分支与当前主服务器已过期,则这是最相关的。

$ git merge-base origin/pr-branch-name origin/master
somehash

这是两个分支共同的第一个提交,以及与之比较的提交。

两次提交之间有哪些不同的文件

要获取不同的文件列表,请使用git-diff选项--name-only

$ git diff --name-only origin/pr-branch-name somehash
src/x
src/y
...

作为一个命令

作为单个命令:

$ git fetch # if desired
$ PR=pr-branch-name
$ git diff --name-only origin/$PR `git merge-base origin/$PR origin/master`
src/x
src/y
...

答案 2 :(得分:0)

现在有一种合理的方法可以完全从GitHub UI执行此操作。在拉取请求的“文件已更改”选项卡上,每个文件名旁边都有一个箭头,它将折叠(或扩展)给定文件的差异。如果您在单击此箭头时按住Alt键,则会折叠所有所有文件的差异,而仅留下文件名和差异统计信息。