首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

git add的filepattern有否定语法吗?

是的,git add 命令支持使用否定语法来排除某些文件或文件夹。否定语法通过在文件模式前加上 ! 来实现。这在你只想添加部分文件,而不想添加整个目录或特定文件时非常有用。

基础概念

git add 命令用于将更改的文件从工作目录添加到暂存区(staging area),以便在后续的提交中包含这些更改。通过使用否定语法,你可以更精确地控制哪些文件被添加到暂存区。

语法示例

假设你有以下目录结构:

代码语言:txt
复制
project/
├── file1.txt
├── file2.txt
├── folder1/
│   ├── file3.txt
│   └── file4.txt
└── folder2/
    └── file5.txt

如果你只想添加 file1.txtfolder1 中的文件,但不想添加 folder2 中的任何文件,可以使用以下命令:

代码语言:txt
复制
git add file1.txt folder1/ !folder2/**

在这个例子中:

  • file1.txtfolder1/ 中的文件会被添加到暂存区。
  • !folder2/** 表示排除 folder2 及其子目录中的所有文件。

应用场景

  1. 排除临时文件:如果你有一些临时文件或编译生成的文件不想添加到版本控制中,可以使用否定语法来排除它们。
  2. 选择性添加:当你只想添加部分更改,而不是整个项目中的所有更改时,可以使用否定语法。

常见问题及解决方法

问题:为什么 !folder2/** 没有排除 folder2 中的文件?

原因:这通常是因为 git add 命令在执行时会先处理通配符模式,然后再应用否定语法。如果 folder2 中的文件已经被其他模式匹配到,否定语法可能不会生效。

解决方法:确保否定语法在通配符模式之后使用,或者重新排列命令中的模式顺序。

代码语言:txt
复制
git add file1.txt folder1/ **/folder2/**

参考链接

通过这种方式,你可以更灵活地管理你的暂存区,确保只添加你需要的文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【已解决】ERROR | unknown: Encountered an unknown error (Pod::DSLError

image-20180522093339194 看着像 git 命令抱错,我使用最新版本1.5.2,就算有问题也修复了吧。况且之前都没问题,问什么这个抱错了。...谷歌了一下,官方说可能是 podspec 语法错误。但是我仔仔细细检查了一遍,也没有发现任何语法错误地方。 难道是我tag 不存在,我在远程库也查看了确实是有对应tag 呀。...难道是最新版本必须 tag 带上 v 标志,我重新创建一个带有 v标识,还是不行。 既然终端提示下面的句子,我就切换一下分支试一下。 ?...git branch -t deve 切换到 deve 分支。 git checkout deve 再次切换回 master 分支。...git checkout master 删除 deve 分支 git -d deve 上传所有 master 代码改动 git add . git commit -m "上传修改" git

4K20
  • 盘点那些前端项目上规范工具

    规范化是前端工程化一个重要部分。现在,有许多工具能够辅助我们实行代码规范化,比如你一知道 ESLint 和 Prettier。...不过,问题来了: 插件做了什么,这种功能怎么实现? 装了插件还需要在项目里安装 ESLint ? 不同项目中使用 ESLint 版本和配置规则不同,会发生冲突?...首先,虽然它们都会对代码 AST(语法树)进行检查,但 Prettier 只会进行语法分析,只能检查并归正代码格式问题,而 ESLint 还会进一步对代码进行语义分析,能发现格式问题和代码模式问题。...同时也说明,它是作用于文件级别的,对代码语法是无感,对所有文件都生效。...EditorConfig 适用于团队成员中使用不同编辑器场景。当所有编辑器都使用项目根目录下 .editorconfig 文件作为配置时,能一程度上保持代码文件统一性。 6.

    92440

    教你写一个快速提交git代码shell脚本

    工作原理 wKioL1hLhIqDimSkAACW4Y1j1qE949.png 四、 废话不多说直接上代码 前提:需懂一些shell脚本语法,其实和PHP差不多。...直接建一个.sh文件,比如我就是:git-push.sh,直接在编辑器里面编写,执行命令就是 git-push.sh 我项目都是在一个文件夹中,所以执行时候会传递三个参数就是 git-push.sh...#######" ls echo "开始执行命令" git add ....#######" 五、alias 别名使用 难道我们每次都得 敲 xxx/git-push.sh '项目代号' '项目commit' '项目的分支' 这么一大堆?...每次都得先进到 .sh文件夹中来执行这个命令? 我们可以命名一个别名,alias作用就是将 为了让频繁使用命令变简单 语法:alias 【别名】=【命令】。

    1.1K30

    使用hexo写博文

    格式转换方便,Markdown 文本你可以轻松转换为 html、电子书等。 Markdown 标记语法有极好可读性。 Markdown语法很简单,这里介绍一些常用。...守着那一份淡, 品读属于自己寂寞。 保持淡, 才能欣赏到最美丽风景! 保持淡, 人生从此不再寂寞。 注:> 和文本之间要保留一个字符空格。...守着那一份淡, 品读属于自己寂寞。 保持淡, 才能欣赏到最美丽风景! 保持淡, 人生从此不再寂寞。 其中一盏灯是斜体,一简书是粗体。...cd source git init git add . git commit -m "first commit" git add remote origin .... git push -u master...如果想将博客通过git部署到github或oschina,可参考我之前一篇博文。 总结 这是篇工具使用说明,好像没什么可说明

    1.7K40

    给,你们要高性能日志记录工具 Log4j 2

    为了表达对老板这份感谢,我决定偷偷摸摸地试水一下 Log4j 2,尽管它还不是个成品,可能会会项目带来一隐患。但谁让咱是一个敬岗爱业打工人呢。 ?...结合日志文件名,再来看 RollingFile 配置,就很容易理解了。 1)fileName 用来指定文件名。 2)filePattern 用来指定文件名模式,它取决于过渡策略。...再来看 filePattern 值 rolling-%d{yyyy-MM-dd}-%i.log,其中 %d{yyyy-MM-dd} 很好理解,就是年月日;其中 %i 是什么意思呢?...第一个日志文件名为 rolling.log(最近日志放在这个里面),第二个文件名除去日期为 rolling-1.log,第二个文件名除去日期为 rolling-2.log,根据这些信息,你能猜到其中规律...filePattern 属性值中增加了一个 gz 后缀,这就表明日志文件要进行压缩了,还可以是 zip 格式。 运行 Demo 后,可以在 gz 目录下看到以下文件: ?

    46820

    教你写一个快速提交git代码shell脚本

    三、工作原理 wKioL1hLhIqDimSkAACW4Y1j1qE949.png 四、 废话不多说直接上代码 前提:需懂一些shell脚本语法,其实和PHP差不多。...直接建一个.sh文件,比如我就是:git-push.sh,直接在编辑器里面编写,执行命令就是 git-push.sh 我项目都是在一个文件夹中,所以执行时候会传递三个参数就是  git-push.sh...#######" ls echo "开始执行命令" git add ....#######" 五、alias 别名使用 难道我们每次都得 敲 xxx/git-push.sh  '项目带号'  '项目commit' '项目的分支' 这么一大堆?...每次都得先进到 .sh文件夹中来执行这个命令? 我们可以命名一个别名,alias作用就是将 为了让频繁使用命令变简单 语法:alias 【别名】=【命令】。

    4.6K10

    编辑器VSCode使用心得

    ,微软开源,github-star:66k 官网地址:https://code.visualstudio.com/ 大概是从去年年初时候接触到vscode,一直使用到今天,我并没有否定上面所列举那些编辑器...vscode代码中Git功能。...查看文件前一个副本。 查看和搜索历史 查看一个或所有分支历史(git日志) 查看文件历史记录 查看文件中某一行历史(Git fault)。...用于vscode编辑器ES6语法JavaScript代码片段(同时支持JavaScript和TypeScript)。...模板分三部分 prefix:快捷键名称(vue文件中敲vue,然后回车直接出现自定义模板) body: 模板内容 description:模板描述信息(给你自己看,不会显示在模板里面) 语法: 在body

    1.4K30

    推荐几个从好用到离谱vs code插件

    Chinese (Simplified) (简体中文)不用多说,每次搭建新环境,下载完vscode第一个插件肯定是这个了(我英语太菜了)Atom One Dark Theme我人生中第一款编辑器就是用...对比 GitLens — Git supercharged你还在每次提交代码git add .?答应我,从现在开始别这样了,安装了这个插件,你只需要输入你变更内容就可以了。...Markdonw All in One一款可以让你在vscode中丝滑使用markdown语法以及快捷键插件。如果你经常使用markdown写作,那就非常适合这款插件了。...Markdown Preview Enhanced如果说上款插件可以支持markdown基础语法,那这款插件可以帮你面对经常写数学公式场景,并且支持实时预览。十分方便快捷。...WeReadForVSCode微信阅读 vs code版,上班摸鱼,听着网易云,看着《鬼吹灯》,还有比这更刺激?QQ真的太离谱了,居然还有QQ,没错,如果你还在用QQ,那这个真的太方便了。

    90190

    请把 .gitattributes 加入你项目

    原文:https://dev.to/deadlybyte/please-add-gitattributes-to-your-git-repository-1jld ?....gitattributes 文件允许你指定当执行 git commit 等 git 动作时,应该被 git 使用文件和路径属性(attributes)。...本文就以此谈论如何配置行尾,以便让即便跨仓库使用不同机器、操作系统每一位开发者都能使用到同样值。 .gitattributes 能平息程序员之间战火?...由此,如果你还使用了 prettier 并将 endOfLine 像这样设置的话: { "endOfLine": "lf" } 使用 Windows 开发者就会遭遇以下语法提示: ?...add . git commit -m "Added .gitattributes to repo" git push 这样一来,当有人从该仓库中取得代码并创建或修改其文件时,默认正确行尾将经由 git

    1.2K20

    记一次开源工具某模块基础二次开发

    显示情况 我们生产环境使用gitlab作为代码库,仅允许ssh方式下拉代码,而不允许http公开拉代码,这么做是为了安全,但是同样也对cobra使用造成了一麻烦。...500,询问了gitlab负责人才知道是根本没有开放http下拉代码功能,统一使用ssh进行下拉。 那原基础cobra能直接用ssh拉代码?试试看好了 ?...我环境是做了git@code.xxx免密推送,root用户密码我不知道啊,就算有权限难道把密码写在配置文件里又安全?...if add password in the url, .git/config will log your url with password cmd = 'git clone ' +...if add password in the url, .git/config will log your url with password cmd = 'git clone ' +

    57110

    从零搭建基于react与ts组件库(一)项目搭建与封装antd组件

    初始化git仓库,添加gitignore文件(后续所有命令非特殊情况,均相对于项目根目录) git init # .gitignore文件内容请直接查看项目内文件 # 完成后,初始提交: # git add.... && git commit -m "init" 安装webpack(包管理器使用yarn) yarn add -D webpack webpack-cli webpack-dev-server #...webpack基于babel-loader处理流程 讲了这么多,我们打包工具webpack如何使用babel相关组件处理代码呢?还记得我们安装过babel-loader?...引入React相关库(externals方式) 还记得我们需求? 依赖react、react-dom模块以外部引用方式。 什么是外部引用方式?...引入AntDesign 根据我们需求,我们希望将antd组件代码引用到我们组件内部进行封装,所以需要以dependencies方式引入: yarn add antd diff --git a/package.json

    89631

    初学Node.js并部署到好雨云

    写个博客 好,在部署之前,我们需要进行一些开发工作,让我们写个简单网站,新建项目目录名为myblog,并创建server.js(上面说过,还记得?)...,但要注意一些语法细节,不然经常会发生因为少了逗号或者引号造成构建失败这种低级错误。...本书并没有由浅入深结构,而是通篇平铺直叙地介绍,因此适合有一 JavaScript 基础的人从头至尾阅读来掌握一些相对细节 JavaScript 知识,或遇到具体问题时查阅相关章节。...在我们本地myblog项目目录中执行 # 初始化本地git仓库 git init # 添加远程仓库地址 git remote add goodrain http://code.goodrain.com.../app/simtime_gr8904c4.git # 执行提交 git add . git commit -m "first commit" git push -u goodrain master 提交后

    95361

    Gary Marcus:文本生成图像系统理解不了世界,离 AGI 还差得远

    但真的是如此?知名 AI 学者(给 AI 泼冷水爱好者) Gary Marcus 表示“持保留意见”。...它们了解它们所呈现出图像背后世界? 1 AI 不懂语言与图像关联 在第一个问题上,答案是肯定。区别只在于,在用 AI 生成图像这件事儿上,经过训练的人类艺术家能做得更好。...可能只是使用了错误训练集”,机器学习教授 Luca Ambrogioni 反驳说,这正表明了“Imagen 已经具有一程度常识”,所以拒绝生成一些荒谬东西。...而在画出“自行车草图,并标记在地面上滚动部分”测试中,其表现得也并没有很好: 如果文本提示带有否定语,比如“画一辆没有轮子白色自行车",其结果如下: 这表明系统并不理解否定逻辑关系。...即便是“画一辆绿色轮子白色自行车”这样简单只关注部分与整体关系提示,而且也没有出现复杂语法或功能等,其得到结果仍存在问题: 因此,Marcus 质问道,一个并不了解轮子是什么、或是它们用途系统

    25010

    一份值得收藏 Git 异常处理清单

    想要修改最近一次提交“修改xxx功能”备注: ? 3(1).png 语法git commit --amend 命令:git commit --amend ?...5(3).png 已变更文件都未添加到暂存区,撤销了 commit 和 add 操作。...5(4).png 已追踪文件变更内容都消失了,撤销了 commit 和 add 操作,同时撤销了本地已追踪内容修改;未追踪内容不会被改变。从上面的效果可以看到,文件修改都会被撤销。...6(1).png 撤销合并: 语法git revert 命令:git revert 700920 下图为执行命令后效果: ?...8(2).png 可以看到本地有 4 个分支,本地分支数量非人为控制,在使用状态分支直接删掉也不合适,分支数量达到一程度,一个一个分支查找也不现实。

    74821

    Log4j、Log4j2问题汇总

    " + id + ", size is " + size + ", color is " + color + ", pattern is " + pattern + "."); 当使用这种带多个参数占位符语法去打印日志时...max="7"/> 这里max属性并非指日志保留上限,而是指filePattern计数器%i最大值,max属性必须和这个计数器%i搭配使用才有效果,此外filePattern最小时间粒度为分钟...如下: RollingFile会自动按照filePattern最小时间粒度进行日志切割回滚。...: IfLastModifiedage时间粒度要和filePattern一致,此外age填写数字最好大于2,否则可能造成删除时候IfLastModifiedage时间粒度要和filePattern...artifactId>spring-boot-starter-log4j2 参考链接 Java日志框架中真的需要判断log.isDebugEnabled()

    3.8K30
    领券