kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

Windows PCとMacでGitのフォルダを共有するには

Windows上で作業をし始めて気づいたんだけれども
既存のファイルでなにもしていないのにModifiedになっている
ものがある

MacからWindows PCへDropbox経由でファイルをコピーしたんだけれども
Dropbox経由だからといって勝手に改行コードが変わるってことはなさそう

考えてみるとこれは改行コードのせいではなかろうか
Macで作ったファイルは改行コードがLF
Windows側で作ったファイルは改行コードがCR+LF

それだけならファイルをコピーしただけで
ファイルがModifiedと思われることはないはずだけれども
Windows用のGitはデフォルトの設定でインストールすると
“Checkout as-is, commit Unix-style line endings”という
動きになっている
commitする前はどうかとは書いてないけれども
ファイルのステータスを判定するときにも何か影響しているんじゃないかと想像

ただし確かにそうだねというほどどうなってるかわかっているわけではない
もともと改行コードがLFだけなら影響受けなくてもいいんじゃないか
それに全部のファイルがModifiedになっているわけではないというのも
不思議なところ

Gitの自然な使い方としては直接ファイルを共有したりはしないで
どっかのリポジトリをそれぞれがcloneして持ってるっていうのが
自然なわけで
gitで管理するようなディレクトリはDropboxに入れないっていうのが
正しい気はするんだけれども
これはDropboxにバックアップがある、これはGitHubにある、みたいな
管理はできそうにないので、このままなんとか解決できないか

Gitが改行コードをへんにいじらないようにして
VS Codeはデフォルトの改行コードをLFにすればだいたい解決するかな?
ただVS Code自身はコントロールできても
たとえばPandocが出力するHTMLファイルの改行コードはCRLFだったりする
こういうところはPandoc依存だからPandocがそういうオプションでも
持っててくれないと面倒なことになる

Gitが改行コードを変更しないようにするには
以下のような設定を入れる

core.autocrlf=false

VS Codeの設定はこう
とりあえずWorkspace設定に入れたけど、グローバル設定にするのはどうかなあ
普通のWindowsファイルをいじるときにうっかりその設定で開いてしまうのも
いやだしなあ

    "files.eol": "\n"

VS Codeの関連付けは外して、必ずWorkspaceから開くとか?
それも面倒だなあ
Workspace設定を毎回忘れずに入れるようにする、でいこうか
あとは運用してみて都度対処