haiju's 開発メモ

開発に必要な情報を自分用にメモ

Linuxサーバのファイルの改行コードについて調べる

自分が修正したファイルをgitでcommit + pushしようとしてdiffを取ったら

文字コードはUTF8なのに、改行コードがCRLFになっていた(゜-゜)

最初、自分のクライアントのVSCodeが問題なのかと思って調べてみたけど

そもそも元のファイルから改行コードがおかしいような...?(Φω|

ということで、Linuxサーバーに配置してあるファイルの改行コードについて

調べてみた手順メインで、それ以外に調べたことについてもまとめた。

[手順]

1.VSCodeで改行コードをCRLFからLFに変更(新規)

1-1.画面右下の改行コードをクリック。

f:id:haiju:20200225154902p:plain

※ここがCRLFになっている。

1-2.Fileメニューから[Preferences] - [Settings]を選択。

1-3.画面上中央の検索窓に「files.eol」を入力し検索。

1-4.検索結果より、既定の改行コードを確認。

 ※何も変更してなければ、auto defaultになっている。

1-5.auto(自動変換)からLF(\n)を選び直して保存。

f:id:haiju:20200225155117p:plain

1-6.新規ファイルを作成し画面右下の改行コードがLFに変更されているのを

 確認。

2.VSCodeで改行コードをCRLFからLFに変更(既存)

2-1.ファイルを開いた状態で画面右下の改行コードをクリック。

2-2.画面上中央に入力窓が出るので、LFを入力しenter(実行)。

2-3.画面右下の文字コードがLFに変更されているのを確認。

3.Linuxサーバにログインしてファイルの改行コードを確認。

3-1.PuTTYLinuxサーバにログイン。

3-2.ソースファイルがあるディレクトリまで移動。

3-3.確認したいファイルを指定し下記コマンドを実行。

$ od -c filename

3-4.改行コードを確認。

※\r\nが表示されたらCRLFになっている。

4.Windows10クライアントのWinSCPの転送設定を確認。

4-1.WinSCPを起動し対象サーバにログイン。

4-2.画面中央上の転送設定を確認。

 何も変更しなければ「デフォルト」と表示されている。

 ここを、「バイナリ」に変更。

4-3.任意ファイルのダウンロードを実行し、改行コードを確認。

5.gitリポジトリでファイルの改行コードを確認。

5-1.下記コマンドを実行し出力されるリストを確認。

※ここで参考にしたサイトには、.gitconfigのcore.autoCRLF = trueの状態

 で実行とあるがfalseに設定されていても確認可。

$ git grep --cached -I $'\r'

5-2.ファイル名の横の検索結果を確認。

※もし、^Mがあったらリポジトリに登録されているファイルの

 改行コードがそもそもCRLFで設定されている。

[参考サイト]

tech.nitoyon.com

ja.stackoverflow.com

denno-sekai.com

9ensan.com

mattyan1053.hatenablog.com

www.atmarkit.co.jp

qiita.com

qiita.com

qiita.com

teratail.com

kazupon.org

oki2a24.com

www.azciel.co.jp

www.ikemo3.com

akros-ac.jp

blog.parkheights405.com

muraken720.hatenablog.com