git - 从 git diff 中排除一个目录

标签 git

我想知道如何从我的 Git diff 中排除整个目录。 (在本例中为/spec)。我正在使用 git diff 命令为我们的整个软件版本创建差异。然而,对规范的更改与此过程无关,只会让人头疼。现在我知道我能做到

git diff previous_release..current_release app/

这将为 app 目录中的所有更改创建差异,但不会在 lib/目录中创建差异。有谁知道如何完成这个任务?谢谢!

编辑:我只想说清楚,我知道我可以将所有目录的参数串在最后,减去/spec。我希望有一种方法可以真正排除命令中的单个目录。

最佳答案

基于 this answer您还可以使用:

git diff previous_release..current_release -- . ':!spec'

这是一个新的 git 特性,允许排除某些路径。它应该比各种 shell oneliners 更可靠。

我在这里发布这个问题是因为这个问题仍然是“git diff exclude path”的#1 hit。

自 Git 2.13(2017 年第 2 季度)起,您可以将 ! 替换为 ^。后者不需要引号。所以你可以把它写成:

git diff previous_release..current_release -- . :^spec

关于git - 从 git diff 中排除一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4380945/

相关文章:

linux - 在无法访问的服务器上自动部署 git

git - Tortoisegit:如何从新的远程分支获取?

git - BitBucket - 下载 ZIP 格式的源代码

linux - 将 SSH key 添加到 authorized_keys : permission denied(publickey)

ios - 使用 GIT LFS 跟踪没有文件扩展名的大型二进制文件

git - 我怎样才能撤消从以前的提交 : A Gitastrophy 删除

java - Android Eclipse 测试项目不能与在 Android 构建树中构建的项目一起使用

git - Husky 4.x+ 不适用于 Visual Studio Git

git - 为什么不能 git add .git/hooks/my-hook

ruby-on-rails - 为生产应用程序销售 rails 的推荐方法是什么?