![]() |
1
1
DR
创建筛选器驱动程序升级版
长正如您所看到的,Git非常喜欢以换行结尾的行。(它可以处理换行分隔的行,其中最后一行缺少终止符,但这意味着添加一行会导致对上一个最后一行的更改,因为它现在有一个换行终止符,而新的最后一行缺少换行终止符。)这对e单个快照,但对于产生有用的差异很重要。 像其他人一样,现代的MacOS使用新品。只有古老的向后兼容格式才有CR行结尾。参见,例如, this SuperUser Stack Exchange web site posting . Git没有 内置 用于转换此类行尾或从行尾转换的筛选器。吉特 做 但是,有一个 通用机制 用于更改工作树文件。
记住,当Git在快照中存储任何文件时,该文件由Git调用的
BLOB对象
它以一种特殊的、压缩的(有时是高度压缩的)仅Git形式存储在内部。此表单对任何内容都无效
但是
Git,所以当您通过
每个文件的索引副本在工作树就位时就存在,就像提交的副本一样。索引副本采用相同的仅Git格式。这里的关键区别在于提交的副本
不能
被更改,但索引副本
可以
被改变。正在运行
这种向索引树和工作树或从索引树和工作树复制是进行Windows样式的LF到CRLF转换的理想点,反之亦然,所以这就是Git所做的。如果你有 其他 要执行的转换,而不是直接内置到Git,这是您告诉Git执行的地方。 污迹和清洁过滤器
一
污迹过滤器
是Git在将文件从压缩索引副本转换为工作树副本时应用的。在这里,如果您选择用CRLF Windows样式的换行符或分隔符替换换行符,那么Git有一个内部转换器可以做到这一点:
如果只想用CR替换换行符,就必须发明自己的转换器。假设你称整个过程为
(而不是
现在您必须定义
现在只要Git转换 从 仅Git格式,它会将换行符转换为CRS,并且每当Git转换时 到 仅Git格式,它将CRS转换为换行。 这对现有存储文件没有帮助
您今天拥有的任何现有快照
但是,您可以指导Git如何
微分
现有提交中的特定文件,也使用
有关详细信息,请参阅 the gitattributes documentation . |
![]() |
itMaxence · 从c库调用objective-c方法 7 年前 |
![]() |
seladb · Makefile-目录不存在时失败-跨平台 7 年前 |
![]() |
Ryan · 调整StackLayout元素的高度 7 年前 |
![]() |
Sergei G · C printf跨平台格式,无警告[重复] 7 年前 |