美文网首页
.gitattributes 避免二进制文件的LF和CRLF问题

.gitattributes 避免二进制文件的LF和CRLF问题

作者: CRJ997 | 来源:发表于2020-07-20 19:42 被阅读0次

环境: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官网链接

  1. 把之前加的二进制执行文件删掉。
  2. 在项目根目录下新建一个.gitattributes文件。已经存在的忽略
  3. 打开.gitattributes文件,把二进制执行文件的路径先写入,虽然现在文件是不存在,不过你要放哪你还是知道的。把二进制可执行文件相对.gitattributes文件的路径写进去。例如execableFile/file1,然后后面用binary标明它是二进制文件,具体标示代表什么可以看上面的官网链接。
* text eol=lf // 非特殊标示的都识别成文本文件,行结束符为lf
execableFile/file1 binary
  1. 保存一个commit
git add --all
git commit -am "chore: modify .gitattributes"
  1. 执行git add --renormalize .,刷新git的配置。这时候可能文件会有更改。有更改的话再提交一个commit。
  2. 然后再把二进制执行文件放到你声明过的路径。然后再执行git add --all,就不会有warning了。可执行文件也可以正常执行了。
    关于刷新配置的文档可以看这个:Configuring Git to handle line endings

相关文章

网友评论

      本文标题:.gitattributes 避免二进制文件的LF和CRLF问题

      本文链接:https://www.haomeiwen.com/subject/wdbykktx.html