😎

VSCodeの隠し機能Cloud Changesを使って、複数端末で作業を同期する

2024/11/17に公開

みなさんは複数の端末でコーディングを行う場合に、どのように作業を同期していますか?

私は研究室と家のデスクトップ、ノートパソコンの3つの端末から同一プロジェクトの開発を行っており、その関係で、ある端末で行った作業内容を、別の端末に引き継ぎたいというケースがたびたび生じます。

今までは、gitを使用して、作業を終了する際にpushするという方法を取ってきました。この方法も悪くはないのですが、端末間で作業を共有するには、区切りがあまりよくない場合でも、中途半端なコミットをする必要性が出てきます。特に、出先で軽く作業を繰り返すようなスタイルだと、[WIP]のコミットが大量に残ってしまいます。個人的なプロジェクトであればこれでもよさそうですが、あまりスマートな方法とは言えません。

そんな時に便利なのが、VSCodeのCloud Changesと呼ばれる機能です。Cloud Changesを使うと、コミットされていない作業内容をVSCodeのサーバーに保存し、別の端末からそのまま作業を再開することができます。

この機能はstable版ですでに使用可能ですが、2024年11月現在、この機能に関するドキュメントが存在しない"隠し機能"的な立ち位置にあります。関連するissueを読み限り、2024年1月にはすでに登場しており、vscode.devなどでの利用を想定して開発された機能なようです。実際に私もしばらく使用していますが、特に問題なく使用できています。

導入方法

Cloud Changesを使うには、以下の条件が必要です:

  • VSCodeにGitHubまたはMicrosoftアカウントでログインしていること
  • プロジェクトがGitHubで管理されていること

まず、Cloud Changesを有効化します。VSCodeの左下のアカウントボタンから、Turn on Cloud Changesを選択します。

有効化

GitHubでログインしている場合、再度認証が求められることもあるので、その場合はログインします、

これでCloud Changesを使えるようになりました。

作業の同期

保存

作業途中の端末から、変更内容を保存します。

Cmd(Ctrl) + Shift + Pを押してコマンドパレットを開き、Cloud Changes: Store Working Changes in Cloudを選択します。

アップロード

エラーが出なければ、作業内容がクラウドに保存されました。

再開

次に、別の端末から作業を再開してみたいと思います。

同様にコマンドパレットを開き、今度はCloud Changes: Show Cloud Changesを選択します。すると、今までに保存された作業内容の一覧を見ることができます。

一覧

複数回、保存操作を行った場合、このように複数の状態が表示されます。再開したいバージョンを選択し、Resume Working Changesを押します。すると、途中の作業内容が反映され、作業を再開することができます。

また、一度再開したバージョンは、クラウドから削除されます。

その他

今のところ問題なく使用できていますが、公式のドキュメントが十分に整備されていないので、ひょっとしたらサービスが終了する場合もあるかもしれません。この機能を使うには、gitが必須なので、全部のデータが消えるということはないと思いますが、途中の作業内容は最悪消えても大丈夫くらいの気持ちでいた方がいいかもしれません。

また、作業データはどこに保存されるのかですが、Settigs Syncで用いられているストレージと同じサービスが使用されているようです。

複数端末を頻繁に切り替える人には、かなり便利な機能だと思うので、もしよければ使ってみてください。

Discussion