克隆或拉取时在 GIT 存储库中保留回车符 Return / 换行符

Preserving Carriage Return / Line Feeds in GIT repository when cloning or pulling

注意到一些奇怪的事情....我正在使用 libgit2sharp 克隆存储库。克隆命令非常简单

LibGit2Sharp.Repository.Clone(sCorrectRepo, sExePath, oOpt)

存储库包含一堆 .sql 文件。在大多数机器上,这些都很好,但在偶尔的客户端机器上,我发现所有 \r\n - "carriage return line feed" 行结尾都被换行符 \n

这里可能会发生什么,最重要的是,我可以做些什么来防止它发生?在大多数 SQL 中,that 并不重要,但我们有一些 SQL 包含实际文本的语句,包括 CRLF 和 when 那些 已更改为仅 LF 我们尝试使用的文本不再正确。

现在我对git不是很熟悉所以我不知道我在做什么。我的猜测是我需要查看 git 属性并添加一行

*.sql binary

但是我如何在现有存储库中执行此操作?我尝试将 gitattributes 文件添加到 windows 机器上的 .git 文件夹,但是当我尝试提交(使用 tortoisegit)时,它没有看到任何变化。

我的远程 git 存储库位于 azure-devops

好的,这个问题的解决方案由两部分组成。首先,正如 colinD 在他的评论中已经建议的那样,我必须去更改配置。我做到了。但它仍然对我不起作用。原因是我上次提交并推送我的 .sql 文件时,它已经用 LF 替换了远程存储库中的所有行结尾。所以我删除了所有 SQL 文件,提交并推送删除,重新添加它们,提交并推送重新添加的 sql 文件,然后 然后 它成功了。

正如@EdwardThomson 在他的评论中所建议的那样,我随后恢复为默认设置并添加了一个 .gitignore 文件。在 .gitignore 文件中 - 与 Windows 中的 .git 文件夹处于同一级别 - 我添加了

*.sql binary

再次进行相同的练习,删除 commit/push 然后重新添加 commit/push 并确认这也有效。正如所建议的那样,这可能是处理这些问题的更新和适当的方法。