35
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gitの改行コード自動変換でハマッた話(WindowsでもLFでチェックアウトする方法)

Last updated at Posted at 2015-03-22

この記事は移行しました!最新の内容はこちらをご覧ください😀

わたくし、
gitの改行コード自動変換(Windows環境ならCRLFにする)というのが嫌いで
リポジトリにコミットされてる改行コードのままクローンされるよう下記設定をいれてます。

core.autocrlf=false(改行コード変換しない)

ある日、
とあるリポジトリをクローンしたところ
改行コードがCRLFになってる。。

てっきりCRLFでコミットされてしまってるんだなと思ったのですが、
実は下記ファイルが原因でした。

.gitattributes
* text=auto

これはGitがテキストであると考えているすべてのファイルがリポジトリに>(LF)改行コードを正規化していることが保証されます。
 引用(翻訳版):http://git-scm.com/docs/gitattributes

ということで、リポジトリ上は全てLFで問題なかったのです。

が、このファイルがコミットされていると、
core.autocrlfの設定を無視してCRLFに変換してくれるようです。

ややこしや。
時代ですかね。

追記(2019/8/29)

どうしてもWindowsでもLFで管理したい!と思い久々に調べました。

するとこんなstack overflowが!

git config --global core.eol lf
git config --global core.autocrlf input

この設定で自動変換されずLFでチェックアウトできました!
* text=autoの設定があっても問題なし!

既にチェックアウト済みの既存のレポジトリは下記コマンドで修正できるぜ!

git rm -rf --cached .
git reset --hard HEAD

的なことが書いてあったのですが、残念ながらCRLFのままでした。でもまぁcloneし直して解決!

これでモヤモヤとサヨナラです。ありがとうGit!

35
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?