11

我有一个存储库来存储我所有的 Vim 设置。它使用子模块来引入带有 Pathogen 的插件(我看过其他插件管理器,目前不感兴趣)。

由于 MSYSGit 在打开 Vim 以获取提交消息时处理行尾的方式,我需要将存储库与 Unix 行尾 (eol=lf) 一起存储。

我尝试在主仓库中添加一个 .gitattributes 文件,其中包含以下内容:

* eol=lf
* text=auto

git rm --cached -r .使用and刷新主存储库后,主存储库中git reset --hard的行结尾现在是 LF。但是,在子模块内运行相同的命令不起作用。

如何配置我的 git repo 以便使用 LF 行结尾签出子模块?

4

2 回答 2

0

我无法重现您的场景,但我建议您尝试git config --global core.autocrlf input.

使用上述指令,您可以强制系统以 unix 格式处理任何回车。

这是关于它的更详细的指南

于 2021-09-06T10:49:52.137 回答
0

.gitattributes根据文档,您的文件仅影响当前工作树:

...Git 查阅 $GIT_DIR/info/attributes 文件(具有最高优先级)、与相关路径位于同一目录中的 .gitattributes 文件,以及其父目录直至工作树的顶层”)。

“工作树”是代表您的存储库的目录。如果您在子模块中,则其工作树不包括父存储库,因此您的文件将被忽略。

解决方案可能是将.gitattributes文件添加到每个子存储库 - 如果您使用全局文件或配置,它将特定于您(作为用户)而不是您的代码。

于 2021-09-06T11:09:09.913 回答