我们经常使用“文件更改”标签来审查我们在分支上所做的工作,但是不幸的是,我们开发过程的一个主要部分是重新生成Flex服务,因此在查看更改的文件时,99%的更改都是无关紧要的。这使得很容易忽略应该审核的重要更改。
我们知道这些重新生成的服务所在的文件夹,如果可以帮助的话,我们可以将所有重新生成的更改提交到一个提交中。
有人有什么建议可以改善这个问题吗?理想情况下,我们希望可以从拉取请求差异中排除一个文件夹。
我们经常使用“文件更改”标签来审查我们在分支上所做的工作,但是不幸的是,我们开发过程的一个主要部分是重新生成Flex服务,因此在查看更改的文件时,99%的更改都是无关紧要的。这使得很容易忽略应该审核的重要更改。
我们知道这些重新生成的服务所在的文件夹,如果可以帮助的话,我们可以将所有重新生成的更改提交到一个提交中。
有人有什么建议可以改善这个问题吗?理想情况下,我们希望可以从拉取请求差异中排除一个文件夹。
Github现在支持使用.gitattributes
文件进行此操作。
在存储库的根目录中创建一个.gitattributes
文件。
使用由linguist生成的属性来标记或取消标记您希望在存储库的语言统计信息中忽略并默认在diffs中隐藏的路径。
例如,要将search/index.json标记为生成的文件,请将此行添加到.gitattributes
:
search/index.json linguist-generated=true
folder/**/* linguist-generated=true
。 - tkit*.filetype
。 - Big Moneyconst fileElements = document.querySelectorAll("*[data-path*='vendor']")
fileElements.forEach(el => el.parentElement.remove())
这将删除与%vendor%
匹配的任何文件差异,在我的情况下。
我知道这是一个老问题,但我仍想分享我的解决方案。作为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" ) {
setTimeout(function () {
item.click()
}, 1000)
}
})
在Mac上的Safari浏览器,通过控制台(开发者工具)运行它:CMD + Option + U。它将找到路径中包含Carthage
的所有未选中的“已查看”复选框,并“点击”它们。之后,选择过滤器以不显示已查看的文件。
和则允许您移动到上一个和下一个提交。
<问号>键会显示键盘快捷键列表。
虽然您无法从拉取请求中排除文件,但是您可以(自2018年12月以来)对其进行过滤。
请参见 "拉取请求文件过滤器":
在拉取请求的“更改的文件”选项卡中,您现在可以:
- 按文件类型筛选或
- 隐藏所有已删除的文件,以便专注于您关心的差异。
请参阅文档 "按文件类型过滤拉取请求中的文件"
你可以在这条推文中看到该新功能的动画演示。这里是生成书签小工具的链接 https://caiorss.github.io/bookmarklet-maker/,可由Vinicius Brasil上面的代码片段生成:
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