是否有文件或菜单可以让我更改如何处理行尾的设置?

我了解到有3个选项:

签出Windows样式,提交Unix样式Git将在签出文本文件时将LF转换为CRLF。什么时候提交文本文件时,CRLF将转换为LF。对于跨平台项目,这是Windows上的建议设置(“core.autorlf”设置为“true”)按原样签出,提交Unix样式Git在签出文本文件时不会执行任何转换。提交文本文件时,CRLF将转换为LF。对于跨平台项目这是Unix上的推荐设置(“core.autorlf”设置为“input”)。按原样签出,按原样提交Git在签出或提交时不会执行任何转换文本文件。跨平台不建议选择此选项项目(“core.autocrlf”设置为“false”)


当前回答

如果要将已更改为UNIX格式的文件格式从PC格式转换回UNIX格式。

(1) 您需要重新安装乌龟GIT,并在“行尾转换”部分确保您选择了“按原样签出-按原样签入”选项。

(2) 并保持其余配置不变。

(3) 安装完成后

(4) 将所有转换为UNIX格式的文件扩展名写入文本文件(extensions.txt)。

ex:*.dsp
   *.dsw

(5) 将文件复制到克隆中在GITBASH中运行以下命令

while read -r a;
do
find . -type f -name "$a" -exec dos2unix {} \;
done<extension.txt

其他回答

.gitattributes文件

最简单的方法是在repo中使用本地.gitattributes文件。

您还可以更改特定文件扩展名的行尾

*           text=auto     # auto
*.txt       text
*.vcproj    text eol=crlf # windows line-endings
*.sh        text eol=lf   # linux line-endings
*.jpg       -text

这也覆盖了全局默认值,因此它更易于移植,并使回购在不同的机器上更可靠。

以下步骤适用于我

在根项目文件夹中添加一个git属性(这对于即将到来的文件很有用)

* text=auto

*.tf  eol=lf
*.tfvars  eol=lf
*.yml  eol=lf

执行以下命令后,为已存在的文件提供支持

find ./ -type f \( -iname \*.tf -o -iname \*.tfvars -o -iname \*.md -o -iname \*.yml \) -print0 | xargs -0 dos2unix

dos2unix .gitignore
dos2unix .gitattributes

如果要将已更改为UNIX格式的文件格式从PC格式转换回UNIX格式。

(1) 您需要重新安装乌龟GIT,并在“行尾转换”部分确保您选择了“按原样签出-按原样签入”选项。

(2) 并保持其余配置不变。

(3) 安装完成后

(4) 将所有转换为UNIX格式的文件扩展名写入文本文件(extensions.txt)。

ex:*.dsp
   *.dsw

(5) 将文件复制到克隆中在GITBASH中运行以下命令

while read -r a;
do
find . -type f -name "$a" -exec dos2unix {} \;
done<extension.txt

对于Windows中的“按原样签出,按原样提交”选项:

git config --global core.autocrlf false

这根本不会修改行尾。

控制这一点的正常方法是使用git-config

例如

git config --global core.autocrlf true

有关详细信息,请在这个链接中向下滚动到Pro Git的名为“core.autocrlf”的部分


如果您想知道保存在哪个文件中,可以运行以下命令:

git config --global --edit

git全局配置文件应该在文本编辑器中打开,您可以看到该文件是从何处加载的。