■ はじめに
https://dk521123.hatenablog.com/entry/2020/08/05/144724
の「【2】エラー「Terminated with errors Bootstrap failure」が表示」で シェルスクリプトの改行がCRLFだと、Amazon EMRがうまく動かなかったことがあった。 で、また、エラー表示は異なる(※1)が、同じ原因の問題が発生した。 この問題を防ぐ解決案として、Git の 改行コード自動変換 core.autocrlf を 設定することがあげられる。 そこで、今回は、自分の戒めも込めて、 Gitの『core.autocrlf 改行コード自動変換ON/OFF』について、まとめておく。 ※1 上記関連記事の 『【3】エラー「IOException: (in directory "."): error=2, ...」が表示』を参照。
目次
【1】改行コードの自動変換 core.autocrlf 【2】(個人的な)結論 【3】設定による影響について
【1】改行コードの自動変換 core.autocrlf
Gitの改行コードの自動変換を設定する。
オプション | 説明 | Checkout/Clone | Commt |
---|---|---|---|
true | チェックアウト/クローン/コミット時に改行変換。Git for Windowsのデフォルト | LF -> CRLF | CRLF -> LF |
input | コミット時のみ改行変換 | 変換しない | CRLF -> LF |
false | チェックアウト/クローン/コミット時どちらも変換せず | 変換しない | 変換しない |
【2】(個人的な)結論
個人的な結論として、以下。 1)Git for windows を インストールしたら、以下の設定を行う。
core.autocrlf の設定例
# コミット・チェックアウト時に改行コード変換をしない $ git config --global core.autocrlf false # 改行コード自動変換ON/OFF の確認 $ git config core.autocrlf false
【3】設定による影響について
Windows 上で、「core.autocrlf=true」の場合、以下のようなことが起こる。 => 自動デプロイを整備しておけば、こんなこと発生しないが、、、
Windows における「core.autocrlf=true」の実害例
1)Windows上のローカル上で、シェルを新規作成(改行 LF) 2)1)を Githubなどのサーバに対して、Commit&Push 3)2)のサーバに対して、新たにCloneする => ここで「LF -> CRLF」に代わってしまう 4)3)を元にデプロイする
参考文献
https://qiita.com/uggds/items/00a1974ec4f115616580
https://qiita.com/yoshiplur/items/568d1e83c54a5c68da30
関連記事
Git ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/06/29/104028
Git ~ git config あれこれ ~
https://dk521123.hatenablog.com/entry/2021/01/10/000000
Amazon EMR に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/08/05/144724