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


10

在Atlassian SourceTree中还是在我当前的git主机(BitBucket)中,有没有一种方法可以全局更改我所有存储库的行尾。

我认为它们当前已设置为Unix(我是偶然地这样做的),但是我仅在Windows上进行开发。我的IDE不断向我发出有关文件中混合行结尾的警告消息和错误,我想修复它,但是每次将项目推送到云时,它都会变回Unix结尾,即使我批量更改了行结尾他们还是被还原了。

Answers:


12

您可以通过将特殊的.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

您会注意到文件是匹配的-*。c,*。sln,*。png--,以空格分隔,然后进行设置-文本,文本eol = crlf,二进制。我们将在下面介绍一些可能的设置。

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

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

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

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


外部链接可能会变得不可用,在这种情况下,您的答案将毫无价值。请在您的答案中包括必要的信息,并使用归因链接和更多信息的来源。谢谢。
fixer1234

希望其中包括所需的详细信息
gpullen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.