Posted at

windows環境の git で改行コードの自動変換に注意

More than 3 years have passed since last update.

windows環境で git を使っていて、改行コードが意図しないものになってしまっていたことがあり、git for windows には改行コードの自動変換というものの存在に気づきました。

git のインストーラーのデフォルト設定では、この自動変換がONになっているので、備忘録のためにおさらい。


git for windows(msysgit) のインストール

最新版のダウンロード ⇒ git for windows

インストールの詳細については以下を参照。

⇒ 私家版 Git For Windowsのインストール手順

⇒ WindowsにGitをインストールする手順について

このインストーラーでデフォルト設定でインストールしていくと、改行コードの自動変換がONになっているので注意!

(1) Select Components ⇒ デフォルトでOK

(2) Adjusting your PATH environment

 ○ Use Git Bash only

 ● Run Git from the Windows Command Prompt

 ○ Run Git and included Unix tools from the Windows Command Prompt

⇒ 2つ目にしておくと Gitが環境変数のPATHに追加されコマンドプロンプトや PowerShell.ext などからも Gitコマンドを使えるようになるので便利。

3つ目は find.exe や sort.exe の既存の動作に影響があるので注意。

(3) レポジトリへのチェックイン、チェックアウト時の改行の取り扱い

 ○ Checkout Windows-style, commit Unix-style line endings

  チェックアウト時に改行コードを[LF]から[CR+LF]に変換し、コミットする時に[CR+LF]を[LF]に変換する。

 ● Checkout as-is, commit Unix-style line endings

  チェックアウト時は改行コードを変換せず、コミット時のみ[CR+LF]を[LF]に変換する。

 ○ Checkout as-is, commit as-is

  チェックアウト時もコミット時も改行コードを変換しない。

⇒ デフォルトだと1つ目になっているので、2つ目 or 3つ目に変更。

  巷の記事を見ていると、改行コードの制御は Gitでは行わない方がよいと思われる。

インストールの(3)でデフォルトのままインストールしてしまった場合、以下で設定変更が可能。

コマンドラインでの設定

> git config --global core.autoCRLF false

設定ファイルを直に編集する場合は、C:\Users\ユーザー名 配下の「.gitconfig」を開いて編集。

[core] に「autoCRLF = false」を追加。


.gitconfig

[user]

name = hoge
email = hogehoge@seeds-std.co.jp
[core]
preloadindex = true
autoCRLF = false

<参考サイト>

git での改行コード

gitの改行コード自動変換でハマッた話

Git for Windows でレポジトリー上の CR LF を LF に変換する手順

Windowsでgitを使う場合の改行コード自動変換がうざい

ついでに TortoiseGit 備忘録も。


TortoiseGit インストール

最新版ダウンロード ⇒ TortoiseGit

日本語パックのダウンロード ⇒ TortoiseGit - Language Packs

それぞれのインストール手順は以下を参照

⇒ TortoiseGitを日本語化するまでの手順

⇒ チュートリアル1 Gitの基本 : Gitのインストール


日本語化

TortoiseGit ⇒ 日本語化パックの順にインストール後

1. 右クリックで TortoiseGit のメニューを表示 「TortoiseGit」 > 「Settings」

2. 設定画面「General」の「Language」で日本語を選択してから「OK」をクリック