杭州餐饮团购网站建设,网站搭建分站需要多少钱,什么企业时候做网站,wordpress 4.1.1漏洞文章目录 什么是 .gitignore 文件#xff1f;.gitignore 文件是用来做什么的#xff1f;如何创建一个 .gitignore 文件#xff1f;在 .gitignore 文件中应包括什么#xff1f;如何在 Git 中忽略一个文件和文件夹如何忽略以前提交的文件 什么是 .gitignore 文件#xff1f;… 文章目录 什么是 .gitignore 文件.gitignore 文件是用来做什么的如何创建一个 .gitignore 文件在 .gitignore 文件中应包括什么如何在 Git 中忽略一个文件和文件夹如何忽略以前提交的文件 什么是 .gitignore 文件.gitignore 文件是用来做什么的
在任何当前工作的 Git 仓库中每个文件都是这样的
追踪的tracked- 这些是 Git 所知道的所有文件或目录。这些是新添加用 git add 添加和提交用 git commit 提交到主仓库的文件和目录。未被追踪的untracked - 这些是在工作目录中创建的但还没有被暂存或用 git add 命令添加的任何新文件或目录。被忽略的ignored - 这些是 Git 知道的要全部排除、忽略或在 Git 仓库中不需要注意的所有文件或目录。本质上这是一种告诉 Git 哪些未被追踪的文件应该保持不被追踪并且永远不会被提交的方法。
所有被忽略的文件都会被保存在一个 .gitignore 文件中。
.gitignore 文件是一个纯文本文件包含了项目中所有指定的文件和文件夹的列表这些文件和文件夹是 Git 应该忽略和不追踪的。
在 .gitignore 中你可以通过提及特定文件或文件夹的名称或模式来告诉 Git 只忽略一个文件或一个文件夹。你也可以用同样的方法告诉 Git 忽略多个文件或文件夹。
如何创建一个 .gitignore 文件
通常一个 .gitignore 文件会被放在仓库的根目录下。根目录也被称为父目录和当前工作目录。根目录包含了组成项目的所有文件和其他文件夹。
也就是说你可以把它放在版本库的任何文件夹中。你甚至可以有多个 .gitignore 文件。
要在基于 Unix 的系统如 macOS 或 Linux上用命令行创建一个 .gitignore 文件打开终端程序如 macOS 上的 Terminal.app。然后用 cd 命令导航到包含项目的根文件夹并输入以下命令为你的目录创建一个 .gitignore 文件
touch .gitignore名字前面有点.的文件默认是隐藏的。
当单独使用 ls 命令时隐藏的文件是不可见的。要从命令行查看所有的文件–包括隐藏的文件–请在 ls 命令中使用 -a 标志如图所示
ls -a在 .gitignore 文件中应包括什么
你应该考虑添加到 .gitignore 文件中的文件类型是任何不需要被提交的文件。
你可能出于安全原因不想提交它们或者因为它们是你的本地文件因此对与你在同一项目上工作的其他开发者来说是不必要的。
其中一些可能包括
操作系统文件。每个操作系统如 macOS、Windows 和 Linux都会生成系统特定的隐藏文件其他开发者不需要使用这些文件因为他们的系统也会生成这些文件。例如在 macOS 上Finder 会生成一个 .DS_Store 文件其中包括用户对文件夹的外观和显示的偏好如图标的大小和位置。由代码编辑器和 IDEIDE 代表集成开发环境等应用程序生成的配置文件。这些文件是为你、你的配置和你的偏好设置定制的。从你的项目中使用的编程语言或框架自动生成的文件以及编译后的代码特定文件如 .o 文件。由软件包管理器生成的文件夹如 npm 的 node_modules 文件夹。这是一个用于保存和跟踪你在本地安装的每个软件包的依赖关系的文件夹。包含敏感数据和个人信息的文件。这类文件的一些例子是含有你的凭证用户名和密码的文件和含有环境变量的文件如 .env 文件.env 文件含有需要保持安全和隐私的 API 密钥。运行时文件如 .log 文件。它们提供关于操作系统的使用活动和错误的信息以及在操作系统中发生的事件的历史。
如何在 Git 中忽略一个文件和文件夹
如果你想只忽略一个特定的文件你需要提供该文件在项目根目录下的完整路径。
例如如果你想忽略位于根目录下的 text.txt 文件你可以做如下操作
/text.txt而如果你想忽略一个位于根目录下的 test 目录中的 text.txt 文件你要做的是
/test/text.txt你也可以这样写上述内容
test/text.txt如果你想忽略所有具有特定名称的文件你需要写出该文件的字面名称。
例如如果你想忽略任何 text.txt 文件你可以在 .gitignore 中添加以下内容
text.txt在这种情况下你不需要提供特定文件的完整路径。这种模式将忽略位于项目中任何地方的具有该特定名称的所有文件。
要忽略整个目录及其所有内容你需要包括目录的名称并在最后加上斜线 /
test/这个命令将忽略位于你的项目中任何地方的名为 test 的目录包括目录中的其他文件和其他子目录。
需要注意的是如果你只写一个文件的名字或者只写目录的名字而不写斜线 /那么这个模式将同时匹配任何带有这个名字的文件或目录
# 匹配任何名字带有 test 的文件和目录
test如果你想忽略任何以特定单词开头的文件或目录怎么办
例如你想忽略所有名称以 img 开头的文件和目录。要做到这一点你需要指定你想忽略的名称后面跟着 * 通配符选择器像这样
img*这个命令将忽略所有名字以 img 开头的文件和目录。
但是如果你想忽略任何以特定单词结尾的文件或目录呢
如果你想忽略所有以特定文件扩展名结尾的文件你需要使用 * 通配符选择器后面跟你想忽略的文件扩展名。
例如如果你想忽略所有以 .md 文件扩展名结尾的 markdown 文件你可以在你的 .gitignore 文件中添加以下内容
*.md这个模式将匹配位于项目中任何地方的以 .md 为扩展名的任何文件。
前面你看到了如何忽略所有以特定后缀结尾的文件。当你想做一个例外而有一个后缀的文件你不想忽略的时候会发生什么
假设你在你的 .gitignore 文件中添加了以下内容
.md这个模式会忽略所有以 .md 结尾的文件但你不希望 Git 忽略一个 README.md 文件。
要做到这一点你需要使用带有感叹号的否定模式即 !来排除一个本来会被忽略的文件
# 忽略所有 .md 文件
.md# 不忽略 README.md 文件
!README.md在 .gitignore 文件中使用这两种模式所有以 .md 结尾的文件都会被忽略除了 README.md 文件。
需要记住的是如果你忽略了整个目录这个模式就不起作用。
例如你忽略了所有的 test 目录
test/假设在一个 test 文件夹内你有一个文件example.md你不想忽略它。
你不能像这样在一个被忽略的目录内排除一个文件
# 忽略所有名字带有 test 的目录
test/# 试图在一个被忽略的目录内排除一个文件是行不通的
!test/example.md如何忽略以前提交的文件
当你创建一个新的仓库时最好的做法是创建一个 .gitignore 文件包含所有你想忽略的文件和不同的文件模式–在提交之前。
Git 只能忽略尚未提交到仓库的未被追踪的文件。
如果你过去已经提交了一个文件但希望没有提交会发生什么
比如你不小心提交了一个存储环境变量的 .env 文件。
你首先需要更新 .gitignore 文件以包括 .env 文件
# 给 .gitignore 添加 .env 文件
echo .env .gitignore现在你需要告诉 Git 不要追踪这个文件把它从索引中删除
git rm --cached .envgit rm 命令连同 --cached 选项从版本库中删除文件但不删除实际的文件。这意味着该文件仍然在你的本地系统和工作目录中作为一个被忽略的文件。
git status 会显示该文件已不在版本库中而输入 ls 命令会显示该文件存在于你的本地文件系统中。
如果你想从版本库和你的本地系统中删除该文件省略 --cached 选项。
接下来用 git add 命令将 .gitignore 添加到暂存区
git add .gitignore最后用 git commit 命令提交 .gitignore 文件
git commit -m update ignored filesReferencehttps://www.freecodecamp.org/chinese/news/gitignore-file-how-to-ignore-files-and-folders-in-git/