LoginSignup
2
1

More than 3 years have passed since last update.

Win10のWSLとMacでdotfilesをGit管理すると、Winでエラー吐く

Last updated at Posted at 2019-01-29

ぜんぶWindowsのせいだ。
JR SKISKI

TL;DR

設定を読んだ際に出たエラーの最後に「^M」となっていればたぶん、改行コード。
Git for Windowsの設定で改行コードが自動で変換され、CR/LFになってしまう模様。
WSLではなく、GUIのGithub for Desktopを使ったせい。

やったこと

経緯

.vimrcや.bashrc(.zshrcとか.config.fishでもいいが)のようなdotfilesを、
複数環境で使うようにしたかった。
小生の環境

  • 【会社】WSL(Ubuntu) Windows10
  • 【自宅】macOS 10.14 Mojave

で、調べたら「設定ファイルをgitすればええやん!」
という記事にほだされ、やってみることに。

なんか、エラー頻発する

$HOMEにdotfilesリポジトリ置いて、
関係各所にlnでシンボリックリンク張っただけなので、
詳細(上記の記事)については省略。

しかし、自宅のmacから設定を持っていき、vim(neovim)を使おうとすると

(省略)~/dotfiles/vim/.config/nvim/init.vim の処理中にエラーが検出されました:
行    2:
E15: 無効な式です: &compatible^M

ということで、dein.vimの設定から既に最後になんかついてる。
この^Mが何かを調べると、どうやら改行コード(しかもCR)っぽい。
改行コード...?最近のmacってlinuxと同じLFじゃないっけ...?(あってた)

原因

と思ったら、どうやらGithub Desktop for Windowsを使っていたことが敗因だった模様。
Gitの設定で「自動で改行コードがCR/LFになる」という仕様になっていたらしい。

前のこのPCの使用者は、この設定で使ってたのか...
これインフラいじったとき問題おきなかったんだろうか。

当然こっちはGit for Windowsを使用しているので、
Windows側でGitの設定が必要になる。
WSLのコンソールではなく、PowerShellで以下の設定を行う。

PS> git config --global core.autocrlf input

これでもう一度cloneすれば、
変換されずに済むかと思われる。

まとめ

ぜんぶWindowsのせいだ。
JR SKISKI

いや、設定しなかった私も悪い(小声)

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1