首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git add的filepattern有否定语法吗?

git add的filepattern有否定语法吗?
EN

Stack Overflow用户
提问于 2013-04-12 23:02:11
回答 3查看 640关注 0票数 7

假设我想使用git add (或其他命令行指令-我不能使用.gitignore)来添加除*.hi文件之外的所有文件。有没有办法做到这一点?到目前为止,我已经尝试过:

git add '!*.hi'

git add '!(*.hi)'

据我所知,这是在glob语法中指定否定的方式,也是在.gitignore中指定否定的方式。然而,对于这两个命令,我都收到了错误fatal: [pattern] did not match any files。无论如何,我是从Windows Powershell运行这些命令的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-13 01:05:17

一种纯粹的Git方法是将它们全部添加,然后再次从索引中删除那些不需要的文件:

代码语言:javascript
复制
git add .
git rm --cached *.hi

只有从索引中删除这些文件时,才需要--cached;否则,您将删除这些文件。请注意,git rm将始终“添加删除”到索引,所以这可能不是您想要的,以防文件被跟踪。然后你应该按照Klas Mellbourn在评论中建议的那样使用git reset

代码语言:javascript
复制
git add .
git reset -- *.hi
票数 5
EN

Stack Overflow用户

发布于 2013-04-13 01:01:08

在PowerShell中,这是可行的:

代码语言:javascript
复制
git add $(Get-ChildItem -Recurse -Exclude '*.hi')
票数 2
EN

Stack Overflow用户

发布于 2021-02-25 16:54:39

排除模式为

代码语言:javascript
复制
git add '!:*.hi'

请注意分号。

使用git version 2.28.0.windows.1在PowerShell中进行了测试

我发现this answer to how to use the exclusion pattern in git很有用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15974732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档