如何创建Git属性文件

时间:2013-08-20 09:03:49

标签: git gitattributes

我想按照here所述将属性文件添加到我的Git存储库。它表明我应该在我的存储库的根文件夹中包含.gitattributes

  • .gitattributes只是一个文件还是文件夹?如何创建此文件/文件夹?

    Windows引发了以下错误:

      

    “无法创建没有文件名的文件”

      

    “您必须输入文件名”

  • 应该在哪里添加文件?在存储库根目录X:\PATH\TO\Repository\或Git文件夹X:\PATH\TO\Repository\.git\下?

  • 是否会为其他贡献者强制执行属性克隆/分配我的存储库?

    e.g。如果我推送到GitHub或GitLab并且其他一方下拉了副本,那么我添加的属性也会在他们的机器上执行吗?

相关: Git Ignore

注意:如果有帮助,我在Windows平台上使用TortoiseGit和msysgit。

1 个答案:

答案 0 :(得分:19)

.gitattributes是文件还是文件夹?我该如何创建它?

  • Windows :在Windows资源管理器中创建一个新文本文件(右键单击> new>文本文件)并重命名(快捷方式:F2),如下所示

    .gitattributes.
    

    注意: DOT + gitattributes + DOT,Windows将删除尾随{{1为您生成适当的文件名

  • Linux:及其变体(Gentoo,Raspberry Pi,Mac OS等)

    DOT
  • 另外:克隆Git Attributes存储库并移动/复制适用于您的存储库的touch .gitattributes 文件(脚注1和2)。

应该在哪里添加文件?在存储库根目录.gitattributes或Git文件夹X:\PATH\TO\Repository\

有两个位置可以添加Git属性文件

X:\PATH\TO\Repository\.git\
  1. 此处添加 \Repository (1) \Repository\.git\info\attributes (3) 文件会将属性设置为“通用”。
  2. 在此处创建.gitattributes文件会设置“个人”属性,即自己计算机上的存储库。虽然不建议您这样做good reason
  3. 是否会为其他贡献者强制执行属性克隆/分配我的存储库?

    如果文件是committed到存储库,则在克隆存储库时会克隆该文件,并且相应项目的贡献者的计算机上的属性也会被强制执行(脚注:3和4)。 将.gitattributes添加到项目根目录.gitattributes和“本地”时,将属性“全局”应用到某个子文件夹X:\PATH\TO\Repository\.gitignore


    脚注:

    1. 如果您使用大文件存储(Git LFS),则必须小心,因为这些文件可能不支持LFS,反之亦然。此外,LFS会在您设置跟踪时为您创建X:\PATH\TO\Repository\SOME\SUB-FOLDER\.gitignore
    2. 巧合的是,还有Git Ignore的存储库。
    3. 最初,当我第一次提出问题时,我担心对行结尾的正确处理; .gitattributes处理得很好,但每个贡献者最好在他们自己的机器上正确配置git。
    4. 不要将.gitattributes添加到.gitattributes文件中。是的,这将应用“个人”属性,但有一天将覆盖你的“全球”工作,有一天会有眼泪和拥抱......很多拥抱!!!