Atlassian SourceTree:如何全局更改行尾?

Sco*_*ott 11 git

有没有办法在 Atlassian SourceTree 或我当前的 git 主机(BitBucket)中更改我所有存储库的全局行尾。

我认为他们目前设置为 Unix(我认为我是偶然这样做的),但我仅在 Windows 上进行开发。我的 IDE 不断给我关于文件中混合行结尾的警告消息和错误,我想修复它,但每次我将项目推送到云时,它都会改回 Unix 结尾,所以即使我批量更改行结尾无论如何,他们会被恢复。

gpu*_*len 14

您可以通过将特殊的.gitattributes 文件添加到 Git 存储库的根文件夹来配置每个存储库的行尾处理。如果此文件提交到存储库,它将覆盖个别开发人员的 core.autocrlf 设置。

在此文件中,您可以配置 Git 以自动检测行尾。

注意:-并非所有图形 Git 工具都支持 .gitattributes 文件,例如 Eclipse IDE 当前不支持它。

这是一个示例 .gitattributes 文件。您可以将其用作存储库的模板:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
Run Code Online (Sandbox Code Playgroud)

您会注意到文件是匹配的--*.c、*.sln、*.png--,以空格分隔,然后给定设置--text, text eol=crlf, binary。我们将在下面讨论一些可能的设置。

text=auto Git 会以它认为最好的方式处理文件。这是一个很好的默认选项。

text eol=crlf Git 总是在结账时将行尾转换为 CRLF。您应该将它用于必须保留 CRLF 结尾的文件,即使在 OSX 或 Linux 上也是如此。例如,这是一个强制 CRLF 行结尾的 Windows 项目。

text eol=lf Git 总是在结账时将行尾转换为 LF。您应该将它用于必须保留 LF 结尾的文件,即使在 Windows 上也是如此。对于例如,这里是强制LF行结束的项目。

二进制 Git 会理解指定的文件不是文本,它不应该尝试更改它们。二进制设置也是 -text -diff 的别名。