ブログに書きたいネタとか雑多なメモを管理する際、Git によるバージョン管理と、クラウドストレージによる同期を併用したくなる。
具体的には、こんなことがしたい:
- コミットに至らないメモ書きの段階では、クラウドストレージで同期させたい
- ついでにそのメモ書きは、タブレット等の複数の端末から更新したい
- ブログで記事を公開してからの差分を Git で管理
プライベートのリモートリポジトリ代わりに、ベアリポジトリを OneDrive に共有する話は見たことある (これ とか これ) のだが、私がやりたいこととはちょっと違うんだよな。
そもそも、 Microsoft 買収後に GitHub で無制限にプライベートリポジトリ作れるようになったので、 Git リポジトリの共有自体は GitHub とかで良いので。
以前、ローカルリポジトリをまるごと OneDrive で共有させてみたのだが、複数の端末で編集すると同期の競合が発生しまくってしまった。
特に .\.git
ディレクトリ内でコンフリクトすると後処理が面倒くさすぎる。
どうにかならんもんか。
.\.git
ディレクトリだけ同期除外
先に答えを言ってしまうと、クラウドストレージでの同期で特定のディレクトリの同期を除外させれば良い。
.\.git
ディレクトリ内のコンフリクトが面倒なら、 .\.git
ディレクトリだけ同期を除外させればいじゃない… という精神だ。
ただ、 OneDrive では一筋縄ではいかなかったので、少々トリッキーな方法を採っている。
そのやり方を、 Windows 上の OneDrive を例に紹介する。