これは誰に向けたどんな内容のエントリ?
- WindowsのSourceTreeを使ってGitのソースを管理する人のためのエントリ
- 具体的に言うと技術書典に向けてRe:VIEWで本を書くぞー!原稿はGitHubで管理するぞー!という人に見て欲しい
- 落とし穴があるのでSourcetreeのインストール前に伝えておきたい
前提
- OSがWindowsであること
- GitのクライアントソフトはSourcetreeを使うつもりであること
伝えたいこと
- Sourcetreeをインストールする際、
改行の自動処理を設定する
にはチェックを入れないこと

チェックを入れてしまうとどうなるか?
autocrlf
が true
になって、GitHubからソースをclone(=まるごと取ってきた)してきた際にソースの改行コードが全部 LF
から CRLF
になります
- Windows内でDockerを動かしてあれこれするとき、DockerイメージがLinuxだと、ソースの改行コードが
CRLF
になっていることでつまづくのです
既にインストール済みのSourceTreeでautocrlfがtrueになっていないか確認するには?
- Sourcetreeのターミナルを開いて
git config --global --get core.autocrlf
を叩いて確認してみよう
true
なら autocrlf
が有効になっているのでアウト、false
か input
ならセーフです。
どうすればautoctlfの設定を変更できる?
- Sourcetreeのターミナルを開き、次のように
git config
をたたいて false
もしくは input
にすればOKです。
false
にするとgit cloneする時も、git pushする時も何もしません(改行コードを勝手に変換しない)
input
にするとgit cloneする時は何もせず、git pushする時だけ crlf
を lf
にしてくれます
- ローカルで新たに作ったファイルも、git pushする時には改行コードを
lf
に統一しておこうと思ったら input
の方がよいでしょう
git config --global core.autocrlf false
または
git config --global core.autocrlf input
- あるいは直接
C:\Users\%USERPROFILE%\.gitconfig
というGitの設定ファイルを書き換えてもOKです。
- エクスプローラーで
C:\Users\%USERPROFILE%\
を開くと、たとえばユーザ名が mochikoAsTech
なら C:\Users\mochikoAsTech\
が表示されます
[core]
autocrlf = input