Bladeren bron

2025.03.26

git 8 maanden geleden
bovenliggende
commit
62421c15c4

+ 93 - 0
笔记文件/2.笔记/gitattributes作用.md

@@ -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 文件是确保项目在不同环境和开发者之间保持一致性的强大工具,尤其适用于多平台协作的开发团队。

+ 45 - 0
笔记文件/2.笔记/git排除 排除CRLF行尾差异.md

@@ -0,0 +1,45 @@
+#杂七杂八常识 
+
+```
+这个问题是关于Git中如何处理CRLF(回车换行)差异问题。在不同操作系统中,文本文件的行结束符是不同的:
+Windows使用CRLF(\r\n)
+Linux/Unix使用LF(\n)
+旧版Mac使用CR(\r)
+这种差异会导致在跨平台协作时,即使文件内容没有实质性变化,Git也会报告有差异,因为行结束符发生了变化。
+```
+
+### 使用.gitattributes文件
+
+使用说明,参考[[gitattributes作用]]
+在项目根目录创建`.gitattributes`文件,内容如下:
+
+``` shell
+# 设置默认行为,所有文件都使用LF
+* text=auto eol=lf
+
+# 对特定类型的文件强制使用LF
+*.java text eol=lf
+*.xml text eol=lf
+*.txt text eol=lf
+*.md text eol=lf
+*.json text eol=lf
+
+# 二进制文件不应修改行尾
+*.png binary
+*.jpg binary
+*.jar binary
+```
+
+这种方法最为可靠,因为它是基于项目的,而不是个人Git配置,所有团队成员都会遵循相同的规则。
+
+### 对已有项目修复CRLF问题
+
+如果项目已经存在CRLF混乱问题,需要输入两行指令,进行修正即可
+
+``` bash
+# 重新检出所有文件,应用行尾设置
+git rm --cached -r .
+git reset --hard
+```
+
+以上设置可以有效避免Git因行尾符差异而产生不必要的变更记录。

+ 28 - 0
笔记文件/日记/2025_03_26_星期三.md

@@ -0,0 +1,28 @@
+
+06:53
+
+###### [[unity日常积累]]
+
+###### [[节奏天国]]
+
+###### [[帧同步王者荣耀]]
+
+###### [[从零开发跨平台通用日志插件]]
+
+###### [[通用异步网络通信库]]
+
+###### [[高性能定时系统实现]]
+
+###### [[学习资料]]
+
+###### [[其他]]
+
+#### [[看板]]
+
+# 今日任务
+
+- [ ] 家里下载一下Clion作为版本管理
+---
+[[git排除 排除CRLF行尾差异]]
+[[gitattributes作用]]
+# Journal