WindowsでGitを使うときは改行コードの自動変換を無効にしてほしい

今回はちょっと技術よりのお話を。

ホームページの画面はHTMLやCSSといったテキストファイルというファイルを作成します。これはシステム開発でプログラムを書くときのソースプログラムも同じです。
ですので、アズシエルのスタッフの多くは日夜テキストファイルと格闘することが多いわけです。

テキストファイルは行の区切り、改行のことろで改行コード・行末コードという、文字ではない制御コードというものが使われます。

これが、古くからWindowsではCR+LF2のつ、macOSではCR、LinuxのようなUINX系ではLFと、OSによって違う、などと言われています。

とはいえ、最近はMacもすっかりUNIX系のOSになりまして、macOSの改行コードもLFだって言っていいんじゃない?というところはあります。

そして、Windows 10も次の大型アップデートでは「メモ帳」で、UNIX風のLFだけが改行コードなテキストファイルが扱えるようになるらしいというお話もあるようです。

ASCII.jp:Windows 10 RS5では「メモ帳」がCR+LF以外の行末記号に対応|Windows Info

特に近年Web関係のコンテンツ・プログラムが多くなってきていて、それらはもともとUNIX文化から出てきたものなので、もう全部LFで統一すればいいのに、などと思うわけです。

そんなわけで、HTML、CSS、JavaScript、PHPとかRubyとかサーバーサイドのプログラムも、とにかくアズシエル社内的にはみんな改行コードはLFで統一しようぜ、ということにしているんですけど。

でもWindows用のソフトは改行コードがCR+LFが前提で作られているものも少なくなかったりします。

そんなこともあって、Gitというツールでテキストファイルを管理していると、Gitクライアントがそのへんをよきにはからってくれるというか、WindowsでGitにファイルをcommit + pushすると、CR+LFな改行コードのファイルをLFに変換してくれるとか、逆にpullするときはLFな改行コードのファイルをCR+LFに変換してくれたりします。

くれたりしますっていうか、余計なお世話だ!と思うことがほとんどでして。

そもそもいちおープロである我々が使うテキストファイル編集ソフト、例えばテキストエディタや統合開発環境やDreamWeaverのようなオーサリングソフトも、Windows上でもUNIX風に改行コードがLFだけなテキストファイルは問題なくそのまま扱えるわけで、むしろ今後は「メモ帳」ですらOKになるっていうんなら、余計な自動変換をしてくれないほうが混乱を招かなくていいんじゃないかなと思うんですけど、どうなんでしょうか。

というわけで、今回はWindows用のGitクライアントで改行コードの自動変換をしないことにする設定方法をご説明します。MacやLinuxはUNIXのコマンドを使うのが普通ですけど、よくあるWindowsのGitはなにやらGUIツールの一部になっていたりますからね。

事前準備

まずはすべての作業ファイルをいったんcommitして、GitHubやGitLabのようなリモートリポジトリがある場合はそこにpushしておきましょう。設定を変更してからはあらためてリモートリポジトリからcloneしなおしてください。

ToutoiseGit の場合

TourtoiseGitの場合はGUIで設定を変更すれば良いので簡単です。

まず任意のフォルダやデスクトップで右クリックして、メニューの「ToutoiseGit」→「設定」を選択してください。

表示されたダイアログ左側の「Git」のところをクリックするとなにやら説明ダイアログが出ますが「OK」をクリックして閉じてください。

画面右上の「グローバル」にチェックをつけて、画面中程の「AutoCrlf」のチェックボックスが真っ白になるまで何回かクリックしてください。

これで画面下の方の「OK」をクリックしてダイアログを閉じれば完了です。

Sourcetree の場合

Sourcetreeをお使いの場合は黒画面でコマンドを実行する必要があります。

まずSourcetreeのメニューから「操作」→「ターミナルで開く」を実行します。

現れた黒画面で、以下のように入力してください

git config --global core.autocrlf false

その他のコマンドラインから実行する MSYS Git なども同様のコマンドで設定を行います。

もちろん、この設定が有効な場合になにが起きるかご理解された上で有効にしている方にナンクセをつける気は毛頭ないのですけれど、基本的には自分の意識していないところで余計な改行コードの変換が行われるというのはトラブルのもとになると思うので、WindowsでGitを使うときには問答無用でこの設定をしておいてほしいな、と思うのでした。