假设我有一个 Github 项目:https://github.com/tom-lord/my_awesome_app(不是真正的链接😉)
“主”应用程序的代码位于
app/
文件夹中,并且在其他文件夹中还定义了 API 客户端:
每个 API 客户端都有自己的版本号和自己的
Changelog.md
。
任何客户端发布新版本时,都会自动生成
git tag
。例如,ruby-v123.45.6
。这主要用于部署,但也意味着我们可以排序显示 Github 内版本之间的差异,例如:
https://github.com/tom-lord/my_awesome_app/compare/ruby-v123.45.5...ruby-v123.45.6
但是,事情是这样的:这不是一个完美的比较,因为它还会显示任何其他文件夹中的代码更改。这给差异增加了很多“不相关的噪音”。
是否有任何方法在 Github UI 中(或至少在浏览器中)来过滤文件夹内的文件更改?理想情况下,我希望能够做到这一点:
...类似于 Github 的高级搜索工具中可以实现的功能。
在撰写本文时,Github 的高级搜索仅显示来自主分支的结果:
我们目前仅支持在存储库的默认分支上搜索代码。查询长度限制为 1000 个字符。
所以我认为在 Github 的 UI 中这是不可能的。
但是,可以在命令行上完成:
git diff ruby-v123.45.5 ruby-v123.45.6 -- clients/ruby
其他有用的命令只是显示已更改的文件列表:
git diff ruby-v123.45.5 ruby-v123.45.6 --stat -- clients/ruby
或者它们之间的日志:
git log ruby-v123.45.5..ruby-v123.45.6 --stat -- clients/ruby
您可能需要先执行
git pull --tags
(或完整的git fetch
)。