git中 gitignore 忽略文件操作( 二 )

如果您想忽略以特定单词开头的任何文件或目录,该怎么办?
假设您希望忽略所有名称以img开头的文件和目录 。要做到这一点,你需要指定你想要忽略的名称,后面跟着*通配符选择器,就像这样:
>img*该命令将忽略所有名称以img开头的文件和目录 。
但是,如果您想忽略任何以特定单词结尾的文件或目录,该怎么办呢?
如果希望忽略以特定文件扩展名结尾的所有文件,则需要使用*通配符选择器,后面跟着要忽略的文件扩展名 。
例如,如果你想忽略所有以.md文件扩展名结尾的markdown文件,你可以在.gitignore文件中添加以下内容:
>*.md该模式将匹配项目中任何以.md扩展名结尾的文件 。
前面介绍了如何忽略以特定后缀结尾的所有文件 。如果您想要做一个例外,并且有一个带有该后缀的文件不想忽略,会发生什么情况呢?
假设你在.gitignore文件中添加了以下内容:
.md该模式忽略所有以.md结尾的文件,但您不希望Git忽略README.md文件 。
要做到这一点,您需要使用带有感叹号的否定模式,!,来使该文件失效,否则该文件将会被忽略:
# ignores all .md files.md# does not ignore the README.md file!README.md对于.gitignore文件中的这两种模式,所有以.md结尾的文件都会被忽略,除了README.md文件 。
要注意的是,如果忽略整个目录,此模式将不起作用 。
假设你忽略了所有的测试目录:
test/假设在一个测试文件夹中,有一个文件,例如.Md,你不想忽视的 。
你不能像这样对一个被忽略的目录中的文件进行否定:
# ignore all directories with the name testtest/# trying to negate a file inside an ignored directory won't work!test/example.md如何忽略之前提交的文件
最好的做法是创建一个.gitignore文件,其中包含创建新存储库时要忽略的所有文件和不同的文件模式——在提交之前 。
Git只能忽略尚未提交到存储库的未跟踪文件 。
如果您在过去已经提交了一个文件,但希望没有提交该怎么办?
假设您不小心提交了一个存储环境变量的.env文件 。
你首先需要更新.gitignore文件以包含.env文件:
【git中 gitignore 忽略文件操作】# add .env file to .gitignoreecho ".env" >> .gitignore现在,你需要告诉Git不要跟踪这个文件,把它从索引中删除(如果是文件夹需要添加-r选项):
git rm --cached .envgit rm命令和--cached选项一起从存储库中删除文件,但不删除实际的文件 。这意味着该文件作为一个被忽略的文件保留在您的本地系统和工作目录中 。
git status将显示该文件已不在存储库中,而输入ls命令将显示该文件存在于本地文件系统中 。
如果希望从存储库和本地系统中删除文件,请忽略--cached选项 。
接下来,使用git add命令将.gitignore添加到暂存区:
git add .gitignore最后,使用git commit命令提交.gitignore文件:
git commit -m "update ignored files"

经验总结扩展阅读