我们如何添加项目级配置.gitattributes文件来强制执行行结尾,这将适用于克隆回购的任何人?

时间:2017-08-18 12:35:44

标签: git github gitattributes

我们正在开发一个项目,其中包含git代码,并使用visual studio开发。但是,由于行结尾会自动更改,因此我们经常会遇到此问题。我们确实考虑过在每台开发者机器上使用git配置行结束设置的选项,但是我们想要更紧密地集成到我们正在使用的repo中。 我能够在git文档中找到一个解决方案(https://git-scm.com/docs/gitattributes)但是现在我被卡住了,因为我无法将此文件提交到存储库,因为.git文件夹位于存储库之外。 我试图为这个文件执行“git add”,但这也没有用。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

您可以将.gitattributes文件放在项目工作树的根目录下。 .git文件夹的位置与它无关。

答案 1 :(得分:1)

将.gitattributes放在项目根目录中,并使用以下text eol=lf为我工作

答案 2 :(得分:0)

我确认:

  • 您可以在根文件夹中添加和提交 .gitattributes 个文件
  • 您不能通过符号链接(符号链接)引用存储在存储库外的同一个文件。

Git 2.32(2021 年第二季度)对于最后一点非常清楚:

参见 commit 8ff06decommit bb6832dcommit 801ed01commit 1cb12f3commit a1ca398(2021 年 5 月 3 日)和 commit 43a2220、{{3} }、commit 0282f67commit 9e1947c(2021 年 5 月 1 日),作者:commit 963d02a
(2021 年 5 月 11 日于 Jeff King (peff)Junio C Hamano -- gitster -- 合并)

<块引用>

commit 416449e:点文件的文档符号链接限制

推荐人:菲利普·奥克利
签字人:Jeff King

<块引用>

我们已停止允许 docs 中的 .gitmodules 文件的符号链接(verify_path:禁止 .gitmodules 中的符号链接,2018-05-04,Git v2.18.0-rc0 -- {{3 }} 列在 10ecfa7) (verify_path: disallow symlinks in .gitmodules, 2018-05-04),我们停止跟踪 .gitattributes.gitignore 的符号链接,和 .mailmap 在来自 merge 的提交中(“合并分支 'jk/open-dotgitx-with-nofollow'”,2021-03-22,Git v2.32.0 -- batch #7) .
那里详细讨论了原因,但我们从未调整文档以让用户知道。

这没什么大不了的,因为这样的设置被轻微破坏并且无论如何都被认为是不寻常的。
但是,清楚明确地说明它当然没有坏处。

gitattributes 现在包含在其 204333b 中:

<块引用>

注意事项

Git 在访问 .gitattributes 时不遵循符号链接 工作树中的文件。

这使文件的行为保持一致 从索引或树访问,而不是从文件系统访问。

mergeman page.gitignore 相同。