WindowsのFork (fork.dev) でGit操作をするときの改行コードの扱いにずっと違和感があって、今ようやくその理由が分かった。
Forkはデフォルト設定だと内蔵のGitインスタンスを使うようになっていて、そのインストール場所の /etc以下にsystem-wideな設定を独自に抱えている。特にgitconfigのcore.autocrlfがtrueになっているのが問題で、Forkで操作したファイルだけ何故かCRLFに代わってしまうことがあるのはこれが原因だった。普通にProgram FilesにインストールしたGitを使わせるようにしたら (たぶん) 解決した。
.devのドメインはそのままだとリンクになってくれないのか
gitconfigに関して、公式のドキュメント (https://git-scm.com/docs/git-config) によれば /etcにあるsystem-wideな設定より $HOMEにある設定のほうが優先されるはずなのだけど、Forkが使ってるのはGit for Windowsが提供しているPortable版で、おそらくこれは $HOMEを見に行かないように作られているのだと思う。
実際に同じリポジトリの配下にいる状態で、
$ git config core.autocrlf
が $HOMEに設定されたinputを返すのに対して、
$ <portable-git>/cmd/git.exe config core.autocrlf
がtrueを返すのを確認した。