メインコンテンツへスキップ

複数端末間でGithubとDropbox内のフォルダを相互同期する方法

    Github + vs codeでコードを書く体制に移行したものの共著者との共有は依然としてDropbox, そして研究室と家のパソコン両方で作業したい、という人向けのニッチなTipsです。

    • 自分でdo fileいじってる間はGithubで端末間を同期

    • logや図表などのアウトプットは直接dropboxに出力して同期

    • 作業が一区切りして共同研究用のフォルダにDo file一式をコピーしたいタイミングでGithubからDropboxのdo fileフォルダに同期

    という体制にもっていきます。

    Dropbox内のフォルダを直接Githubのレポジトリにしてはいけない

    さすがの私もそれはダメでしょうと思ってたんですが、なんとChatGPTは最初堂々と勧めてきました。
    Claudeに確認したら ダメ絶対 って感じでした。

    FreeFileSync

    2つのフォルダのペアの同期をするフリーソフトです。ChatGPTに勧められました。他にも似たようなソフトがあるかもしれませんがとりあえず私はこれを使います。

    基本的な使い方もChatGPTに聞けばわかります。以下、ChatGPTに聞いてもすぐにはわからないことだけを書いていきます。

    自動生成される隠しファイルをDropboxやGithubで同期しない設定

    この手のソフトはどれもそうだと思うんですけど、sync.ffs_db という隠しファイルが同期するフォルダペアの両方に作成されます。これが異なる端末間で同期されてしまうとバグるので、Githubとdropbox両方でこいつを無視する設定が必要になります。できたらFree File Syncで最初の同期をする前にやったほうがいいです。

    GithubではgitignoreでOK:sync.ffs_dbと*.ffs_dbをgitignoreに追加すればOK。これは簡単。
    ただし、この設定をする前にcommitしてsync.ffs_dbをGitが追跡しはじめてしまった場合は、Gitをコマンドプロンプトで開けて追跡解除する必要があります。Github Desktopの場合、Repository⇒Open in Command Prompt (もしGitがインストールされてない場合はインストールしろと言われるのでインストール)⇒ コマンドプロンプト上でgit rm --cached do\sync.ffs_db (sync.ffs_dbの場所は調整してください) ⇒無事に回ったらcommit.  

    Dropboxにも「無視ルール」という設定ができる:2026/7/29現在、デスクトップアプリのアカウント⇒基本設定⇒同期⇒無視ルールの設定 でいけます。
    ただし、この設定をする前にsync.ffs_dbができてdropboxに同期されてしまっている場合は、エクスプローラでdropbox内の同期するフォルダを開いて、隠しファイルを表示して、sync.ffs_dbを選択して右クリック→dropbox→ファイル情報、で同期を止める必要があります。

    AIは嘘を言います:ChatGPTとClaude両方とも「sync.ffs_dbをdropboxの外に置けばいい」とか言ってたけどそんな設定はできません。

    Gitが生成するファイルをFreeFileSyncが同期しない設定

    .gitと、gitignoreしてるファイル全部をFreeFileSyncの同期からはずしましょう。特定のファイルを同期しない設定は、おそらく見ればわかるし、わからなければChatGPTに訊けば教えてくれます。
    Dropboxのほうはそういうフォルダ内に自動生成される隠しファイルはなさそうですが、Dropboxの中のサブフォルダを同期しない設定をしたければ同じ要領でできます。

    同期するタイミングは手動にしたほうが無難だと思った

    AIは毎日決まった時間に自動で同期するしくみを提案してきますが、自分が同期したいタイミングで手動でFreeFileSyncを開いてポチっとする方が安全じゃないかなと思いました。あくまで個人的に思っただけですが。

    Githubに同期するのはdo fileだけにしたほうがよいらしい

    こちらにも書きましたが、log fileのように毎回新しく生成されるものはgit管理しないほうがいいんですよね。

    なので、Dropbox側のフォルダを整理して、現在進行形で更新されるdo fileを入れるフォルダだけをGithubに同期するようにします。

    とはいえ、研究室で回した結果を家で読みたいときにいちいち回しなおすの時間もかかるしめんどくさいので、アウトプットも同期はしておきたいですよね。これがベストな方法かはわからないですけど、アウトプットの出力先自体をdropboxにしてしまうという運用に私はしています。

    あと、もちろんデータはGithubの同期からも外すし、クラウド保存不可のものはDropboxにもいれてはいけません!

    * 研究室
    global db "C:\Users\【研究室のPCのDropboxのフォルダの場所】"
    global gh "C:\Users\【研究室のPCのGithubのレポジトリの場所】"
    global data "C:\Users\【研究室のPCのデータの場所】"
    
    * 家
    global db "C:\Users\【家のPCのDropboxのフォルダの場所】"
    global gh "C:\Users\【家のPCのGithubのレポジトリの場所】"
    global data "C:\Users\【家のPCのデータの場所】"

    みたいな感じでPathだけ書いたdo fileを作っておいて最初に回してます。

    あなたへのおすすめ