📜  什么是 Git-Ignore 以及如何使用它?

📅  最后修改于: 2021-10-23 09:13:26             🧑  作者: Mango

在提交之前,我们可能希望 git 忽略各种类型的文件,例如,与我们的用户设置或任何实用程序设置有关的文件、密码和 API 密钥等私有文件。这些文件对其他人没有任何用处,我们不想弄乱我们的 git。我们可以在“ .gitignore ”的帮助下做到这一点

.gitignore是项目文件夹中的一个自动生成的文件,它忽略/阻止文件提交到本地和远程存储库。

如何使用 Git-Ignore?

.gitignore可以通过以下步骤在 Git 中使用:

步骤 1:打开终端/cmd 并将目录更改为文件所在的文件夹。您可以使用“ls -a”命令查看其内容。

cd directory(or)folder
ls -a

在这里,项目文件保存在名为 story 的文件夹中,该文件夹位于 web 开发中。在这里,我们希望 git 忽略 secrets.txt 文件。

更改目录和查看内容

第 2 步:在项目文件夹中创建.gitignore 文件。

第 3 步:在 .gitignore文本文件中写入要忽略的文件的名称。每个文件名都应该写在一个新行中。

git-ignore-文本文件

第 4 步:在终端中初始化 git。将这些文件添加到您的 git 存储库并使用适当的消息提交所有更改。

git init
git add .
git commit -m "your message"

第 5 步:检查存储库的状态。每次进行任何更改和提交时,git 都会忽略添加到.gitignore 文本文件中的文件。

git status

添加和提交

Git-Ignore 的一些常见模式和格式:

  • 空行:空行不代表任何文件名,为了便于阅读,我们可以用它来分隔两个文件名。
  • #:以# 符号开头的行表示注释。但是,如果# 用作模式,则在# 符号之前使用反斜杠(“\”),以免将其误解为注释。
  • /:用作目录分隔符,即包含目录,例如 webdev/ 。
  • *.extension_name:例如*.txt 和*.log 可用于匹配所有分别以.txt 和.log 为扩展名的文件。
  • **/any_name:用于匹配任何名称为any_name的文件或目录。
  • any_name/**:用于匹配名称为any_name 的目录内的任何内容。例如 webdev/** 匹配 webdev 目录中的所有文件。

例子:

# Compiled class file
*.class

# Log file
*.log

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files 
*.jar

*.war

*.nar

*.ear

*.zip

*.tar.gz

*.rar

如何撤消任何提交?

在使用 .gitignore 忽略某些文件之前,如果您已经提交了您不想提交的文件,那么您可以如何撤消它。在 Git Bash 上使用以下命令撤消提交:

git rm --cached -r

这里,“rm”代表移除,而“r”代表递归。

注意:前往 GitHub 并搜索 gitignore 存储库,您将找到由不同人贡献的 gitignore 存储库列表。