WindowsのFork (fork.dev) でGit操作をするときの改行コードの扱いにずっと違和感があって、今ようやくその理由が分かった。

Forkはデフォルト設定だと内蔵のGitインスタンスを使うようになっていて、そのインストール場所の /etc以下にsystem-wideな設定を独自に抱えている。特にgitconfigのcore.autocrlfがtrueになっているのが問題で、Forkで操作したファイルだけ何故かCRLFに代わってしまうことがあるのはこれが原因だった。普通にProgram FilesにインストールしたGitを使わせるようにしたら (たぶん) 解決した。

フォロー

gitconfigに関して、公式のドキュメント (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を返すのを確認した。

.devのドメインはそのままだとリンクになってくれないのか

fork.dev/

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。