由于微软的Visual Studio中存在一个“特性”,所以.sln文件必须具有Windows风格的换行符,以便Windows资源管理器可以在Visual Studio中打开它们。因此,我需要能够提交此特定文件并保留其换行符。如果所有其他文件都被转换也没关系。问题是如何使Git仅接受具有Windows换行符的单个文件?
由于微软的Visual Studio中存在一个“特性”,所以.sln文件必须具有Windows风格的换行符,以便Windows资源管理器可以在Visual Studio中打开它们。因此,我需要能够提交此特定文件并保留其换行符。如果所有其他文件都被转换也没关系。问题是如何使Git仅接受具有Windows换行符的单个文件?
参考gitatttributes文档。最近版本的Git允许你为文件设置eol
属性,以控制文件在检出时使用的行尾符。
你可以创建一个类似下面这样的.gitattributes
文件:
path/to/my/file eol=crlf
# Ensure all files are checked into the repo with LF line endings and checked
# out with LFs.
* text=auto eol=lf
# Except these files will always be checked out with CRLFs (regardless of the
# OS they were checked out on).
*.bat text eol=crlf
*.sln text eol=crlf
这个例子还确保了.bat文件始终使用CRLF行结尾。
注意:如果您希望在存储二进制文件(如图像)的仓库中,您可能还需要明确告诉git不要通过类似于*.png binary
的方式干扰行结尾。
注意:旧版本的git在这个领域有一个bug,所以请确保您正在使用2.10或更高版本。
git checkout .
恢复删除。这应该会恢复所需行结尾的文件。 - Jeroen van Montfort