环境:mac catalina 10.15.5
在项目中要引入二进制可执行文件,直接把文件拷贝到项目中。然后执行git add --all。发现会有个warning:
warning: CRLF will be replaced by LF in XXX . The file will have its original line endings in your working directory.
也就是二进制文件里面的CRLF换行符会被LF替换掉。然后抱着试试的态度,把二进制文件里面的CRLF全部换成了LF,接着执行对应的可执行文件,直接提示文件格式错误,无法执行。
然后开始谷歌,走的弯路就不说了。直接说解决方案,git官网链接
- 把之前加的二进制执行文件删掉。
- 在项目根目录下新建一个.gitattributes文件。已经存在的忽略
- 打开.gitattributes文件,把二进制执行文件的路径先写入,虽然现在文件是不存在,不过你要放哪你还是知道的。把二进制可执行文件相对.gitattributes文件的路径写进去。例如
execableFile/file1
,然后后面用binary标明它是二进制文件,具体标示代表什么可以看上面的官网链接。
* text eol=lf // 非特殊标示的都识别成文本文件,行结束符为lf
execableFile/file1 binary
- 保存一个commit
git add --all
git commit -am "chore: modify .gitattributes"
- 执行
git add --renormalize .
,刷新git的配置。这时候可能文件会有更改。有更改的话再提交一个commit。 - 然后再把二进制执行文件放到你声明过的路径。然后再执行
git add --all
,就不会有warning了。可执行文件也可以正常执行了。
关于刷新配置的文档可以看这个:Configuring Git to handle line endings
网友评论