git attributes与rollback与irreversible conversion探究

git真是博大精深,一点小问题搞得头大。

feature

  • Git 不认为换行符的不一致性是文件内容的更改,换行符的转换只是在文件的存储和显示过程中进行的一种格式化处理,不会被 Git 视为影响文件内容的实质性更改。
  • 由于外部原因(而非 Git 配置)导致换行符的变化,Git 可能会将其识别为文件内容的更改,并将其显示为变更。
  • idea的 git rollback 操作(大概)是默认的 git reset --mixed
  • Git 的回滚操作不会自动更改文件的换行符设置,但是(据说)会受 core.autocrlf.gitattributes 设置的影响。
  • 在idea行分隔符选择“取决于系统”、未开启“保存时操作”的情况下,core.autocrlf=false 且不受 .gitattributes 影响的文件,仍无法从 \n rollback\r\n ,但是会认为你已经撤销了变更。