正如人们可以从 其他 职位上收集的一样,Git的行尾标准化有其优点和缺点。 我有一个特定于Windows的项目,我认为最好的做法是完全禁用行结束标准化。 也就是说,我想保留所有换行符(大多数是CRLF ),而不是让git将它们标准化为LF ,并且只在后台执行,我希望这种改变影响到所有机器上所有存储库的克隆。 问题是最有效的方法。 大多数关于Git行结束标准化的讨论都是以core.autocrlf来说的,我可以通过设置core.autocrlf=false来实现我的目标。 但是,这是一个git-config设置,我相信必须在每台机器上分别设置。 如果这是真的,那似乎很容易出错,特别是因为msysgit安装程序引导一个进入设置core.autocrlf=true 。
大部分.gitattributes文件都有* text=auto 。 那个文件中的text=auto的目的是什么?
我创build了一个包含在git仓库中的文件的默认版本。 当有人克隆版本库时,他们得到这个文件的副本是很重要的。 但是,我想设置git,以便稍后忽略此文件的更改。 .gitignore仅适用于未跟踪的文件。 我的动机是这个文件包含特定于计算机的信息。 我想提供默认值,同时允许人们进行本地更改,不会被推回原始存储库,当我们提出新的更改时,创build合并冲突。 我们一般很懒,使用git add . 很多,所以我敢肯定,如果我不能告诉git忽略这个文件,对它的更改将最终被提交和推送。 总而言之, 我想创build一个文件,将其称为default_values.txt添加到我的git存储库,并包含在克隆该存储库时。 git add . 不应该将default_values.txt添加到提交中。 这个行为应该被传递给仓库的任何克隆。