Help us understand the problem. What is going on with this article?

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

More than 5 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」をクリック

yokoh9
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