.gitattributes文件及.gitignore文件的作用
.gitattributes 文件是 Git 版本控制系统中的一个配置文件,用于指定项目中特定路径的属性。这个文件可以用来定义一系列规则,这些规则会应用于 Git 对仓库中文件的操作方式。通过 .gitattributes 文件,你可以控制文件的处理方式,比如合并策略、差异比较、文本转换等。
# 将所有 .txt 文件视为文本文件并自动转换行尾符
*.txt text
# 将所有 .jpg 文件视为二进制文件
*.jpg binary
# 设置 .xml 文件的合并策略为 union
*.xml merge=union
# * 表示匹配所有文件。
# text=auto 表示 Git 会自动检测文件是否为文本文件,并在必要时进行行尾符转换。
# eol=lf 表示在提交时将所有文本文件的行尾符转换为 LF(Unix 格式)
* text=auto eol=lf
# *.blade.php diff=html:指定所有 .blade.php 文件在进行差异比较时使用 HTML 差异算法。
*.blade.php diff=html
# 以下代码作用相同
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php
# /.github export-ignore:指定 .github 目录在导出归档文件时被忽略。
/.github export-ignore
# 以下代码作用同上
CHANGELOG.md export-ignore
.styleci.yml export-ignore
.gitignore
文件用于指定 Git 应该忽略哪些文件和目录,这样这些文件就不会被纳入版本控制。这对于排除编译生成的临时文件、日志文件、环境配置文件等非常有用,可以保持仓库的整洁和高效。
# 忽略操作系统生成的文件
.DS_Store
Thumbs.db
ehthumbs.db
Desktop.ini
# 忽略编辑器和 IDE 生成的文件
*.swp
*.swo
*.swn
*.lock
*.log
*.pid
*.tmp
*.bak
*.orig
*.rej
*.sln
*.suo
*.user
*.vspscc
.vs/
*.iml
.idea/
.project
.classpath
.settings/
nbproject/
*.pyc
*.pyo
*.pyc
__pycache__/
# 忽略构建工具生成的文件
node_modules/
bower_components/
dist/
build/
out/
target/
*.jar
*.war
*.ear
*.class
*.dll
*.exe
*.obj
*.pdb
*.lib
*.so
*.a
*.o
*.pdb
*.dylib
# 忽略日志和缓存文件
logs/
*.log
*.csv
*.dat
*.sqlite
*.db
*.sqlitedb
.cache/
.cachedir/
*.tmp
*.temp
*.bak
*.swp
# 忽略虚拟环境
venv/
.virtualenv/
.env/
# 忽略测试报告
coverage/
.nyc_output/
test-results/
# 忽略配置文件
.env
config.php
config.json
config.yaml
config.yml
# 忽略特定于项目的文件
*.sublime-project
*.sublime-workspace
*.code-workspace
# 忽略 Git 自身生成的文件
.git/
.gitmodules
# 忽略 Docker 生成的文件
.dockerignore
.docker/
.docker-compose.override.yml
# 忽略其他工具生成的文件
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# 忽略 Visual Studio Code 生成的文件
.vscode/
*.code-workspace
# 忽略 Python 生成的文件
*.pyc
*.pyo
*.pyc
__pycache__/
# 忽略 Go 生成的文件
*.a
*.o
*.so
*.hprof
*.prof
# 忽略 Rust 生成的文件
/target/
# 忽略 C/C++ 生成的文件
*.o
*.a
*.so
*.dylib
*.dll
*.pdb
*.lib
# 忽略 Java 生成的文件
*.class
*.jar
*.war
*.ear
*.class
*.dex
# 忽略 Swift 生成的文件
*.swiftdoc
*.swiftmodule
# 忽略 Android 生成的文件
/build/
.gradle/
/local.properties
captures/
###特别注意###
node_modules/ #该代码会忽略项目根目录及其子目录下的所有node_modules目录
/node_modules #该代码只会忽略项目根目录下node_modules目录,不涉及子目录