我想知道如何从我的Git diff中排除整个目录.(在这种情况下/规范).我正在使用git diff命令为我们的整个软件版本创建差异.但是,规范的更改与此过程无关,只会造成令人头疼的问题.现在我知道我能做到
git diff previous_release..current_release app/
Run Code Online (Sandbox Code Playgroud)
这将为app目录中的所有更改创建一个diff,但不会在lib /目录中创建.有谁知道如何完成这项任务?谢谢!
编辑:我只是想清楚,我知道我可以在最后编制所有目录的参数,减去/ spec.我希望有一种方法可以真正排除命令中的单个目录.
cdl*_*ard 284
根据这个答案你也可以使用:
git diff previous_release..current_release -- . ':!spec'
Run Code Online (Sandbox Code Playgroud)
这是一个新的git功能,允许排除某些路径.它应该比各种shell oneliners更可靠.
我在这里发布这个,因为这个问题仍然是"git diff exclude path"的第一个问题.
Cas*_*bel 130
假设你使用了bash,并且你已经启用了扩展的globbing(shopt -s extglob
),你可以从shell端处理它:
git diff previous_release current_release !(spec)
Run Code Online (Sandbox Code Playgroud)
保存您必须列出所有其他东西.
或者,与shell无关:
git diff previous_release current_release --name-only | grep -v '^spec/' \
| xargs git diff previous_release current_release --
Run Code Online (Sandbox Code Playgroud)
您可以将其包装在单线程shell脚本中,以避免自己重新键入参数.
Von*_*onC 33
您可以尝试取消设置lib目录中任何文件的diff属性.
.gitattributes
:
lib/* -diff
Run Code Online (Sandbox Code Playgroud)
只是为了增加这一点,对于那些想要限制
git diff
特定类型文件输出的人,在特定目录及其子目录中,例如Webpack捆绑.js
文件生成的所有JavaScript ,例如,你可以添加这个到.gitattributes
:
dist/js/**/*.js -diff
Run Code Online (Sandbox Code Playgroud)
然后你没有在你的git diff输出中看到所有的噪音,它只显示为:
Binary files ... differ
这更有帮助.
小智 31
如果要在git diff中指定要排除的多个路径,只需在末尾添加其他排除参数,例如从统计信息中排除vendor和bin目录中的所有内容: -
git diff --stat previous_release..current_release -- . ':!vendor' ':!bin'
Run Code Online (Sandbox Code Playgroud)
jas*_*ard 21
git diff
接受一个可选的排除
git diff -- ":(exclude)thingToExclude"
Run Code Online (Sandbox Code Playgroud)
git diff -- ":(exclude)*/thingToExclude/*"
Run Code Online (Sandbox Code Playgroud)
git diff -- ":(exclude)*/$1/*.png"
Run Code Online (Sandbox Code Playgroud)
git diff -- ":!/\$1/"
Run Code Online (Sandbox Code Playgroud)
.bash_profile
或.zshrc
gde() {
: '
git diff exclude files or folders
usage:
gde fileOrFolderNameToExclude
'
git diff -- ":!/\$1/"
}
Run Code Online (Sandbox Code Playgroud)
Max*_*rty 17
Git diff现在接受自定义排除格式: git diff -- ':(exclude)lib/*'
如果你有很多重复的文件夹名称('/ app','/ lib'等),请小心,因为这将排除相对于当前工作目录和git根目录的文件.
归档时间: |
|
查看次数: |
56844 次 |
最近记录: |