这么多年一直没有太在意代码文件 tab/空格, UTF/GBK , UNIX/DOS 换行符 的问题,这几天被 Git 坑的不浅,需要统一处理一下并以后固定下来, 大家都怎么设定的呢?

2014-12-20 19:51:15 +08:00
 sdjkx
这么多年一直没有太在意代码文件tab/空格,UTF/GBK ,UNIX/DOS换行符 的问题,这几天被Git坑的不浅,需要统一处理一下并以后固定下来, 大家都怎么设定的呢?
8554 次点击
所在节点    git
22 条回复
FrankHB
2014-12-23 00:47:05 +08:00
@dorentus 我看到的LZ说的“统一”修饰的是“处理”,于是理解为有“一致”的规约。所以我给出了我正在使用的整套方案。仔细看你还会注意到,里面已经对不同形式和目的的内容给出例外了,并非都使用UTF-8+BOM。
不过,一开始没特别注意到后来回复的“不想自己的习惯设定和别人差异太大”,那么我得承认这不太符合LZ的要求。不过关于这点我希望能被理解:这里没有谁强调尽量减小差异就是最终目的。
和你看样子理解的一样,加了BOM之后,剩下的东西和BOM不一样了,在这个意义上不“统一”。但这是有意的。上面已经解释过大概,这里再补充一点理由。
类比解释就好像一些媒体文件的封装格式,有效“负载”内容不同于全部文件内容,通常典型地还有附加的元数据。BOM对于文本文件来说就是附加在文件头的元数据。作为持久储存的形式,元数据的存在即在一定意义上表明维护者注意到了文件的完整性及其对内容的限定。而例外则是考虑到使用形式(用于拼接)或者储存之外更主要的目的(作为脚本执行)的实际限制来设定的。
FrankHB
2014-12-23 00:55:31 +08:00
@williamx 虽然可以理解,但很可惜历史已经如此,你无法改变你之外的整个世界,只能改变自己了。
题主可没说他的的代码就是要用在哪的,这样就没法推定用啥了。
同样是文本表示的数据,IEEE Std 1003.1规定text mode只管LF,RFC 2616规定一些分隔符就得要CR+LF。编码就更不用说了。一定能确定哪个比哪个更应该遵守而打死也不选择么。
缩进硬要用空格嘛……也行,祝不要被某些markdown坑。
所以在没有更具体的限定之前,所谓“固定下来”只能是策略而不是只用某一种形式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/155373

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX