📜  git 忽略模式 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:15:19.420000             🧑  作者: Mango

Git 忽略模式 - Shell/Bash

Git 提供了一个非常强大的忽略文件模式,允许你通过定义一个.gitignore文件来告诉Git忽略特定的文件或文件夹。.gitignore文件通常被添加到Git仓库中,以防止特定文件被意外提交。

创建 .gitignore 文件

首先,你需要创建一个名为.gitignore的文件,它可以位于你的项目根目录中。你可以使用任何文本编辑器编辑这个文件,添加你想要忽略的文件名或模式。

下面是一个示例.gitignore文件的内容:

# 忽略所有以.tmp结尾的文件
*.tmp

# 忽略所有文件夹名为"logs"的文件夹
logs/

# 忽略所有名为"config.ini"的文件,但跟在"/config/"之后的不会被忽略
/config/config.ini

# 忽略根目录下的任意文件名为"setup.log"的文件
/setup.log

# 忽略根目录下的"secret.key"文件
/secret.key

# 忽略任意路径下的"test"文件
**/test

# 忽略所有以.js为扩展名的文件
*.js

# 忽略所有以.html为扩展名的文件,但将assets目录下的HTML文件包含进来
*.html
!assets/*.html

以上示例中使用了一些常见的模式和忽略规则,可以根据你的需要进行适当修改。

重要事项
  • 如果.gitignore文件在提取到Git仓库之后再添加,已经被Git跟踪(已经被上传了)的文件将不会被忽略,因此你需要先将它们从跟踪列表中移除(使用git rm --cached <file>命令)。
  • 忽略规则可以使用通配符和模式匹配来匹配文件和文件夹名,包括*(匹配任意字符),?(匹配单个字符),/(匹配目录),!(取消忽略规则)等。
  • 你可以通过向.gitignore文件中添加注释(以#开头)来提高可读性。
  • .gitignore文件也可以位于子目录中,以用于特定目录下的文件忽略。
事例应用

下面是一些常见的使用场景和模式示例:

忽略特定文件
# 忽略根目录下的"config.ini"文件
config.ini

# 忽略根目录下的"setup.log"文件
/setup.log
忽略特定文件扩展名
# 忽略所有以.tmp结尾的文件
*.tmp

# 忽略所有以.js为扩展名的文件
*.js

# 忽略所有以.html为扩展名的文件
*.html
忽略特定文件夹
# 忽略根目录下的"logs"文件夹
logs/

# 忽略任意路径下的"temp"文件夹
**/temp/
忽略从特定目录开始的文件
# 忽略根目录下的"secret.key"文件
/secret.key

# 忽略根目录下的"config.ini"文件,但不忽略根目录下的"/config/config.ini"文件
/config/config.ini
取消特定文件的忽略规则
# 忽略所有以.html为扩展名的文件,但将assets目录下的HTML文件包含进来
*.html
!assets/*.html
总结

Git 忽略模式是一个强大的工具,可以帮助程序员在版本控制过程中更好地管理需要被忽略的文件和文件夹。.gitignore文件是每个Git项目都应该有的一个必备文件,在使用时需要根据具体情况和需求进行配置。通过掌握忽略模式的基本规则,程序员可以更好地控制Git仓库中的文件和变化。