忽略拉请求差异中的特定文件,文件类型或文件夹

时间:2013-11-21 12:00:50

标签: git github pull-request

我们经常使用拉取请求中的“文件已更改”选项卡来查看我们在分支上完成的工作,不幸的是,我们开发过程的主要部分是重新生成Flex服务,因此在查看文件时,99%的更改是无关。这使得很容易错过应该审核的重要更改。

我们知道这些重新生成的服务所在的文件夹,如果有帮助,我们可以在一次提交中提交所有重新更改。

有没有人有任何建议我们如何才能改善这一点?理想情况下,我们会从拉请求差异中排除一个文件夹。

7 个答案:

答案 0 :(得分:3)

Github现在有更多功能来导航拉取请求。

您可以在拉取请求中过滤并跳转到特定文件。按t可以在拉取请求中的任何位置访问此功能。

如您所述,您还可以保留您不想在单独提交中查看的文件。然后,您可以利用提交过滤器功能,该功能允许您仅从一次提交而不是整个拉取请求中查看更改。按c会显示此选择器,pn允许您分别转到上一次和下一次提交。

?显示键盘快捷键列表。

来源:https://github.com/blog/2123-more-code-review-tools

答案 1 :(得分:2)

要排除某个文件夹,我制作了一个棘手的脚本,您可以通过DevTools执行该脚本。

const fileElements = document.querySelectorAll("*[data-path*='vendor']")
fileElements.forEach(el => el.parentElement.remove())

就我而言,这将删除与%vendor%匹配的所有文件差异。

答案 2 :(得分:1)

目前GitHub不支持从拉取请求中排除文件或文件夹的方法。

如果我在发送拉取请求时遇到此问题,这对我的开发团队造成了痛苦,我只能想到以下内容:

目标是从差异中排除文件夹和文件,但同时您不希望在整个拉取请求准备好之前合并服务的更改。这个解决方案并不理想,但您可以:

  1. 提交并推送您不感兴趣的文件夹 - 分支A
  2. 分支并提交您真正计划比较的文件 - 分支B
  3. 打开从BA的拉取请求,您只会看到您感兴趣的内容。
  4. 我不喜欢这个建议的一些事情:

    • 您需要以某种方式自动执行此操作,否则手动工作太多(bash脚本?)
    • 如果您需要在审核过程中更改代码,则必须重复此过程,可能是因为您希望重新生成这些文件。这会破坏拉取请求的良好对话价值,您可以在其中看到更改历史记录

    也许某人有更好的流程,但我和distribution files有同样的问题,我向上游推进,我通过完全传递它来处理它。但是我想你的用例比我的用得多。

    希望这会有所帮助,或者它可以为其他用户提供一些启动。

答案 3 :(得分:1)

虽然您不能从拉取请求中排除文件,但是(自2018年12月起)可以过滤文件。

请参阅“ Pull request file filter”:

  

现在,在拉取请求的“文件已更改”标签中,您可以:

     
      
  • 按文件类型或
  • 过滤   
  • 隐藏所有已删除的文件,以便专注于您关心的差异。
  •   

请参阅文档“ Filtering files in a pull request by file type

https://help.github.com/assets/images/help/pull_requests/file-filter-menu.png

您可以看到该新功能in this tweet的动画版本。

别忘了,您已经可以在diff视图中的箭头上只显示文件名,并显示全部折叠/全部显示切换,并使用 Alt + 点击

注意:过滤器目前不支持正则表达式。为此,您仍然需要Chrome extension

答案 4 :(得分:1)

我知道这是一个老问题,但是无论如何都想分享我的解决方案。作为iOS开发人员,在更新用Carthage获取的库时,我也会遇到此问题。因此,在对请求请求执行审阅之前,请运行以下脚本:

document.querySelectorAll("*[data-path*='Carthage']").forEach( el => {
    const item = el.querySelectorAll("input[type=checkbox][name=viewed]:not(:checked)")[0]
    if ( typeof item !== "undefined" ) {
        item.click()
    }
})

在Mac上的Safari上的控制台(DevTools)中运行它: CMD + Option + U 。它将找到路径中带有Carthage的文件的所有“已查看”未选中复选框,然后“单击”它们。之后,选择过滤器以不显示查看过的文件。

答案 5 :(得分:1)

Github现在支持.gitattributes文件。

  1. 在存储库的根目录中创建一个.gitattributes文件。

  2. 使用语言学家生成的属性来标记或取消标记您要忽略的存储库语言统计信息的路径,默认情况下将它们隐藏在差异中。

例如,要将search / index.json标记为生成的文件,请将此行添加到.gitattributes

search/index.json linguist-generated=true

参考:https://help.github.com/en/github/administering-a-repository/customizing-how-changed-files-appear-on-github

答案 6 :(得分:0)

以下是用于创建从https://caiorss.github.io/bookmarklet-maker/Vinicius Brasil's snippet above上生成的书签的URL:

javascript:(function()%7Bconst%20fileElements%20%3D%20document.querySelectorAll(%22*%5Bdata-path*%3D'vendor'%5D%22)%0AfileElements.forEach(el%20%3D%3E%20el.parentElement.remove())%7D)()%3B