我想添加一个属性文件到我的Git存储库中,如here所述。它指示我应该将.gitattributes
包含在存储库的根文件夹中。
.gitattributes
是一个文件还是一个文件夹?如何创建此文件/文件夹?- Windows引发以下错误:*
“无法创建没有文件名的文件”
“您必须键入文件名” - 应该在哪里添加文件?在存储库根目录
X:\PATH\TO\Repository\
下,还是在Git文件夹X:\PATH\TO\Repository\.git\
下? - 其他贡献者克隆/分叉我的仓库时,这些属性是否会被强制执行?
- 例如,如果我推送到GitHub或GitLab,而另一方拉下了一个副本,我添加的属性也会在他们的机器上强制执行吗?*
相关:Git Ignore
**注意:**我在Windows平台上使用TortoiseGit和msysgit,如果它有帮助的话。
1条答案
按热度按时间gr8qqesn1#
.gitattributes
是文件还是文件夹?如何创建它?***Windows:**在windows资源管理器中新建一个文本文件(右键>新建>文本文件),并将其重命名(快捷方式:
F2
)如下字符串
DOT
+gitattributes
+DOT
,windows会为您删除尾部的DOT
,生成相应的文件名 ****Unix:**及其变体(Ubuntu、Raspberrian、Mac OS等)
型
***或者:**克隆Git Attributes仓库,并移动/复制适用于您的仓库的
.gitattributes
文件(脚注1和2)。在哪里添加文件?在存储库根目录
X:\PATH\TO\Repository\
或Git文件夹X:\PATH\TO\Repository\.git\
下?有两个位置可以添加Git属性文件
型
1.在此处添加
.gitattributes
文件将设置属性“Universally”。1.在这里创建
.gitattributes
文件会设置属性“Personally”,即用户自己机器上的存储库。虽然不明智,但您可能会有good reason这样做。其他贡献者克隆/派生我的仓库时,是否会强制执行这些属性?
如果文件是committed到存储库,则当存储库被克隆时,它将被克隆,并且相应地在项目的贡献者的计算机上强制执行属性(脚注:当
.gitattributes
被添加到项目根目录X:\PATH\TO\Repository\.gitattributes
时,属性被“全局”应用;当.gitattributes
被添加到某个子文件夹X:\PATH\TO\Repository\SOME\SUB-FOLDER\.gitattributes
时,属性被“本地”应用。脚注:
1.如果您使用的是大型文件存储(Git LFS),则必须小心,因为这些文件可能不被LFS感知,反之亦然。此外,LFS将在您设置跟踪时为您创建
.gitattributes
。1.巧合的是,也有Git Ignore的存储库。
1.最初,当我第一次提问时,我关心的是正确处理行尾;
.gitattributes
可以很好地处理这个问题,但是每个贡献者最好在他们自己的机器上正确地配置git。1.不要像白痴一样将
.gitattributes
添加到.gitignore
文件中。是的,这将应用属性“个人”,但有人会覆盖你的变通办法“全球”有一天,将有眼泪和拥抱...很多拥抱!!!