在 .gitattributes 中将文件夹标记为二进制

And*_*sky 11 git github

我必须将一些文件夹包含到存储库中,但我不希望我的 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 测试。


e.d*_*vic 2

为了修复行结尾,您可以应用以下说明

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必须是您的文件夹的名称。

  • 请不要使用`core.autocrlf`。使用“.gitattributes”为每个人配置行结束设置。 (2认同)