|
@@ -0,0 +1,93 @@
|
|
|
|
|
+#杂七杂八常识
|
|
|
|
|
+
|
|
|
|
|
+.gitattributes文件的主要作用包括:
|
|
|
|
|
+
|
|
|
|
|
+- 定义行尾转换规则
|
|
|
|
|
+
|
|
|
|
|
+- 定义文件的文本/二进制属性
|
|
|
|
|
+
|
|
|
|
|
+- 设置差异比较和合并策略
|
|
|
|
|
+
|
|
|
|
|
+- 定义导出规则
|
|
|
|
|
+
|
|
|
|
|
+- 配置自定义过滤器
|
|
|
|
|
+
|
|
|
|
|
+- 语言属性
|
|
|
|
|
+
|
|
|
|
|
+- 设置大文件处理
|
|
|
|
|
+
|
|
|
|
|
+# .gitattributes 文件的作用
|
|
|
|
|
+
|
|
|
|
|
+.gitattributes 文件是 Git 版本控制系统中一个强大但常被忽视的配置文件,它允许你为仓库中的文件或路径模式设置特定的属性。
|
|
|
|
|
+
|
|
|
|
|
+## 主要功能
|
|
|
|
|
+
|
|
|
|
|
+### 1. 统一行尾符号处理
|
|
|
|
|
+
|
|
|
|
|
+``` bash
|
|
|
|
|
+* text=auto
|
|
|
|
|
+*.txt text eol=lf
|
|
|
|
|
+*.bat text eol=crlf
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### - 确保团队成员在不同操作系统下获得一致的行尾符号
|
|
|
|
|
+
|
|
|
|
|
+- 避免因行尾差异导致的假改动
|
|
|
|
|
+
|
|
|
|
|
+### 2. 指定文本/二进制文件
|
|
|
|
|
+
|
|
|
|
|
+``` bash
|
|
|
|
|
+*.png binary
|
|
|
|
|
+*.jpg binary
|
|
|
|
|
+*.pdf binary
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### - 告诉 Git 哪些文件应该被视为二进制,不应尝试行尾转换
|
|
|
|
|
+
|
|
|
|
|
+- 防止 Git 错误处理二进制文件导致损坏
|
|
|
|
|
+
|
|
|
|
|
+### 3. 差异比较和合并策略
|
|
|
|
|
+
|
|
|
|
|
+``` bash
|
|
|
|
|
+*.md diff=markdown
|
|
|
|
|
+*.java diff=java
|
|
|
|
|
+*.xml diff=xml
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### - 指定特定文件类型使用特定的差异算法
|
|
|
|
|
+
|
|
|
|
|
+- 提高差异比较的可读性
|
|
|
|
|
+
|
|
|
|
|
+### 4. 导出规则
|
|
|
|
|
+
|
|
|
|
|
+``` bash
|
|
|
|
|
+.gitattributes export-ignore
|
|
|
|
|
+.gitignore export-ignore
|
|
|
|
|
+/tests export-ignore
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 5. 大文件处理
|
|
|
|
|
+
|
|
|
|
|
+``` bash
|
|
|
|
|
+*.psd filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 6. 语言属性
|
|
|
|
|
+
|
|
|
|
|
+``` bash
|
|
|
|
|
+*.rb linguist-language=Ruby
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+- 帮助 GitHub 准确识别仓库的编程语言
|
|
|
|
|
+
|
|
|
|
|
+## 优势
|
|
|
|
|
+
|
|
|
|
|
+- 项目级配置:与全局 Git 配置不同,.gitattributes 配置会随项目一起提交,确保所有团队成员使用相同的规则
|
|
|
|
|
+
|
|
|
|
|
+- 一致性:避免每个开发者自行设置导致的不一致问题
|
|
|
|
|
+
|
|
|
|
|
+- 自动化:一旦设置,规则会自动应用,无需手动干预
|
|
|
|
|
+
|
|
|
|
|
+- 减少冲突:特别是在跨平台开发团队中,显著减少因行尾符差异导致的合并冲突
|
|
|
|
|
+
|
|
|
|
|
+.gitattributes 文件是确保项目在不同环境和开发者之间保持一致性的强大工具,尤其适用于多平台协作的开发团队。
|