読者です 読者をやめる 読者になる 読者になる

Windows上で複数のOSで開発しているソースをgitで扱うときに気をつけること。

gitさん、あぁ、gitさん。
なぜcheckoutしてるのにずっとmodifiedが取れないの?

何を言っているのかわからないと思うが(略)

修正しているソースを捨てて、リポジトリから取り直したい事ってあるじゃないですか。subversionだと

svn revert

ってしたいとき。gitの場合はこうしてくださいと書いてある

git checkout -- <ファイルパス>

これができなかった。年初のgitのログを見てみると、

windows上でgitを使う際に気をつけること
そのまま使おうとすると改行コードを自動的にCRLFに変換というアリガタメイワクな設定なので、下記のファイルを書き換えること
/etc/gitconfig

[core]
	symlinks = false
	autocrlf = false # autocrlf=true=を書き換えた。
http://d.hatena.ne.jp/kompiro/20090101/1230821387

ってなっていました。お?と思って開発で使っているEclipseを確認すると、CRLFで保存することになってるorzということで、Window -> Preference の General -> workspace で Text File Encodingと New Line file delemiterがあるので、エンコードutf-8、改行LFで設定するといつまで経っても元に戻せない、と言う問題はかたづきました。
さて、core.autocrlfはinputという設定になってます。git config helpでヘルプを見てみると、

core.autocrlf
If true, makes git convert CRLF at the end of lines in text files to LF when reading from the filesystem, and convert in reverse when writing to the filesystem. The variable can be set to input, in which case the conversion happens only while reading from the filesystem but files are written out with LF at the end of lines. Currently, which paths to consider "text" (i.e. be subjected to the autocrlf mechanism) is decided purely based on the contents.

inputとなっていると、ファイルシステムから読み込むときにCRLFをLFに変換し、書き込み時はそのままLFで書き込む、となっているみたいです。