VSCodeのタイムライン/ローカルファイル履歴機能を使用して、ファイルの誤削除を防止する
コード開発において、ファイルを誤って削除することは最も恐ろしいことの一つです。ポップアップボックス、誤ったボタン、またはGitエラーなどが原因で、何日もの苦労の結晶が消えてしまうことがあります。
保存されたコードのすべてのバージョンを記録し、いつでも取り出せる機能があれば、誤ってファイルを失うことを心配する必要はありません。VSCodeでは、これまでにプラグイン(Local Historyプラグインなど)をインストールして行っていましたが、バージョン1.44以降、VSCodeには組み込みのタイムライン機能があります。この記事では、タイムライン機能を使用して、ファイルの誤削除を防止する方法について説明します。
使用方法
コードファイルを開くと、ファイルパネルの下にある左側に「TIMELINE」パネルが表示されます。これがタイムラインです。
ファイルが変更されて保存されると、タイムラインにはコードファイルの履歴バージョンである新しいノードが表示されます。
「保存」以外にも、Gitのコミット、ファイルのリネームなどのアクションもバージョンとしてパネルに表示されます。
バージョンをクリックすると、現在のファイルと比較する画面が表示され、履歴バージョンから最新バージョンまでの変更内容を確認できます。
バージョンを右クリックすると、一連のメニューが表示されます。
これらのメニューは(例えばMacシステムの場合)
- Compare with File 現在のファイルバージョンと比較する
- Compare with Previous 前のバージョンと比較する
- Select for Compare 現在のバージョンを比較バージョンとして選択する(ファイルツリーまたはTIMELINEパネルで別のバージョンを選択して、2つのバージョンを比較することもできます)
- Show Contents 選択したバージョンの内容を表示する
- Restore Contents 選択したバージョンの内容を復元する
- Reveal in Finder ファイルマネージャーで選択したバージョンのファイルを表示する
- Rename 選択したバージョンの名前を変更する
- Delete 選択したバージョンを削除する
TIMELINEパネルの右側にあるフィルターボタンをクリックして、パネルに表示されるレコードの種類を選択できます。現在は、ローカルファイルレコードとGitコミットレコードが表示され、必要に応じて表示できます。
Gitコミットレコードのみをチェックすると、ファイルのGitコミット履歴を表示できるため、非常に便利です。
誤削除されたファイルの取り戻し
ファイルが誤って削除された場合、VSCodeでは表示されず、開くことも、TIMELINEパネルで見つけることもできません。しかし実際には、ファイルが誤って削除されても、その履歴バージョンはローカルに残っています。
削除されたファイルを復元するには、同じディレクトリに同じ名前の新しいファイルを作成し、TIMELINEパネルを開くだけです。削除されたファイルがTIMELINEパネルに表示され、右クリックして復元できます。
これだけです!削除されたファイルが復元されます。ただし、削除したファイルの名前を覚えていない場合は、見つけるのが少し難しくなります。
まず、ファイルを見つけます。同じプロジェクト内の任意のファイルの任意のバージョンで構いません。そして、右クリックしてファイルマネージャーで選択したバージョンファイルを開き、VSCodeが履歴バージョンを保存しているフォルダを見つけることができます。例えば、Macシステムでは、パスは次のようになります。
/Users/xxx/Library/Application Support/Code/User/History/61e8902
History
ディレクトリは、すべての履歴バージョンが保存されているディレクトリであり、キーワードで検索するだけで対応するファイルを見つけることができます。
例えば、キーワードDbConnection
を検索する場合、次のように検索コマンドを見つけることができます。
# Mac / Linux
grep -r DbConnection "/Users/xxx/Library/Application Support/Code/User/History"
# Windows
findstr /s /i DbConnection "C:\Users\xxx\AppData\Roaming\Code\User\History"
検索結果を検索した後、対応するファイルを開いて、1つずつ確認して必要なバージョンを見つけることができます。
まとめ
タイムラインはシンプルで便利な機能であり、他のプラグインを必要とせずにすべてのファイル履歴を保存できるため、誤ってファイルを削除することを心配する必要はありません。