我必须将一些文件夹包含到存储库中,但我不希望我的 git 修改它的内容(行尾等)
我已经有一些文件在 .gitattributes ie 图像中被标记为二进制文件:
*.png binary
Run Code Online (Sandbox Code Playgroud)
但是此规则指定了某些类别的文件 - png 文件,但是我想实现类似的目标:
/folder_which_i_want_to_mark_as_binary binary
Run Code Online (Sandbox Code Playgroud)
emm*_*lau 17
当前接受的答案对我不起作用。可能在最近版本的 git 中行为发生了变化。引用gitattributes手册:
模式匹配路径的规则与 .gitignore 文件中的规则相同(参见 gitignore[5]),但有一些例外:
- 禁止消极模式
- 匹配目录的模式不会递归匹配该目录内的路径(因此在属性文件中使用尾部斜杠 path/ 语法是没有意义的;改用 path/** )
因此,要将整个文件夹视为二进制文件,请使用以下语法:
folder_which_i_want_to_mark_as_binary/** binary
Run Code Online (Sandbox Code Playgroud)
使用 git 版本 2.20.1 测试。
为了修复行结尾,您可以应用以下说明
UNIX系统
git config --global core.autocrlf input
Run Code Online (Sandbox Code Playgroud)
视窗系统
git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)
或者(在 .gitattributes 中)
如果您想将特定文件夹中的所有内容视为二进制文件,.gitattributes您可以添加类似的内容
*.sh text eol=lf
*.bat text eol=crlf
folder/* binary
Run Code Online (Sandbox Code Playgroud)
注意:folder必须是您的文件夹的名称。