これは誰に向けたどんな内容のエントリ?
- 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