在存储库根目录中的.gitattributes
文件中添加一行后:
*.tt eol=crlf
什么过程将适用此规则并更改行结尾;在merge
或commit
或push
?它将在客户端上运行它们或者存储原点的任何内容(bitbucket,stash,github)?每个操作系统有什么不同吗?
在{Check out and check in:
下,git man page for .gitattributes有点模糊当git checkout和git merge等命令运行时,这些属性会影响存储库中存储的内容如何复制到工作树文件中。它们还会影响Git如何在git add和git commit上存储您在存储库的工作树中准备的内容。
确切地说,这些变化何时发生?
这与.gitconfig
中的设置有什么不同?
答案 0 :(得分:2)
行结束转换是在
时完成的由于merge
将文件添加到索引(冲突除外),因此该规则确实在merge
上运行。从技术上讲,它不会发生在commit
上,因为commit
只是将文件从索引复制到存储库,但如果传入-a
选项,则文件确实被复制到索引,然后执行规则。 checkout
将文件从索引复制到工作目录,因此也会执行规则。 push
期间不执行任何规则。