我有一个gitignore文件,使git忽略*.dll文件,这实际上是我想要的行为。然而,如果我想要一个异常(即能够提交foo.dll),我该如何实现这一点?
当前回答
要排除目录中的所有内容,只包括一些子目录,请执行以下操作:
wp-content/*
!wp-content/plugins/
!wp-content/themes/
来源:https://gist.github.com/444295
其他回答
.gitignore中的foo.dll,或者(每次!)git add -f foo.dll
从Git 2.7.0开始,Git会考虑异常情况。官方发布说明如下:
允许后面的“!”/abc/def”来覆盖之前的“/abc” 出现在同一个.gitignore文件中,使其更容易表达 “/abc目录下的所有内容都被忽略,除了…”
https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.7.0.txt
edit:显然,自从Git 2.8.0以来,这个功能就不能再工作了
Use:
*.dll #Exclude all dlls
!foo.dll #Except for foo.dll
从gitignore:
一个可选的前缀!这就否定了模式;任何被前一个模式排除的匹配文件将被重新包含。如果匹配一个否定的模式,这将覆盖低优先级的模式源。
只需添加!在排除规则之前。
根据gitignore手册页:
模式有以下格式: ... 一个可选的前缀!这就否定了模式;任何被前一个模式排除的匹配文件将被重新包含。如果匹配一个否定的模式,这将覆盖低优先级的模式源。
要排除目录中的所有内容,只包括一些子目录,请执行以下操作:
wp-content/*
!wp-content/plugins/
!wp-content/themes/
来源:https://gist.github.com/444295
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别