Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
25
Help us understand the problem. What is going on with this article?
@naoqoo2

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

More than 1 year has passed since last update.

わたくし、
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!

25
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
naoqoo2
myhm
住宅に関わるすべての人にオドロキとヨロコビを

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
25
Help us understand the problem. What is going on with this article?