人気ブログランキング | 話題のタグを見る

[バージョン管理システム] DiversionでのUIによるgit restore 相当の操作について [簡単UI] (1/19)

開発で、Diversionを使っている。

サードパーティとして登録して一応クラウド100GB無料で利用中だ。
 
Diversionをソースやバイナリと一緒に、テキストドキュメントや画像、PDF、Excel等の履歴管理にも使っている。

基本Auto-Update ONで使っているので、コミット操作は無い。

ソース・ドキュメントディレクトリそのものがコミット用領域(ステージング領域)だ。

まあ1人なので、共有ディレクトリ自体無いからそれでいい。

あと、別PCでも同じようにバージョン管理したいので、1人でも複数の端末間で同期するようにしている。
たぶん100GBは初期ファイルと差分履歴の容量で使用されているはず。

ただ、別のプロジェクトとファイル共有してるので、別クラウドとも同期している。
(同期分はソース・バイナリだけ。ドキュメントは個人管理なので、Diversionで管理しているという状態)

ドキュメント作成中、通常テンプレートファイルを個別に修正して文章として送信し、テンプレは上書き保存しないようにしているのだが、
今回間違って上書きしてしまった。

さあ、バージョン管理システムの出番だ。

過去のテンプレは既に登録済みだから、単体のファイルとして直前の履歴に戻せばよい。

DiversionのUIでは、自動的に修正を検出してコミットするかどうか、差分一覧(Commitエリア)に表示される。

そのテンプレファイルが検出されて、前との差分が表示されている。

ファイルをクリックして、右のハンバーガーメニュー(三点リーダーを縦にしたアイコン)をクリックすると、そこにResetという項目が表示される。

これをクリックすると、ダイアログ画面が出て、☑ Delete new files のチェックボックスとともに、Cancel/Discordというボタンが表示され、チェックはOFFの状態にして、Discordボタンを押す。

すると、そのテンプレが直前の内容に戻され、差分一覧にも表示されなくなった。

実は、Gitで同じことをするのには、git restore --source コマンドなのだが、プロジェクト全体をある時点の状態まで戻すコマンドがGitでは reset コマンドのため、ちょっと心配だった。

だが、Geminiにその辺を確かめてみると、詳しい話が聞けた。
要約すると、
・Diversion では restore/reset は reset に統一されており、ファイル単位の場合は git restore と同じになる
・「Delete new files」CheckボックスをOFFにすると前のファイルと今のファイルを残す(今回は未コミットなので今の内容は残らない)
・今はAll files(または単一ファイル)を使っているが、Reset selectedを選べば、個別に巻き戻すファイルを選択できる

DiversionのUIだけで使っているが、コマンド dv でももちろん使える。

(おわり)

● 以下Geminiの詳細

ーーーーーーーーーー

【Q1】
Diversionというバージョン管理システムについて、Gitで言うgit -restoreやgit -checkoutのような機能はありますか?resetについてはわかっています。
【A1】
Diversionは、Gitの操作感を意識しつつも、クラウドネイティブでバイナリファイルなどの大容量データに強い設計となっているバージョン管理システムですね。

Gitにおける `git restore` や `git checkout`(ファイルの状態を戻す操作)に相当する機能は、Diversionでは主に **`dv revert`** コマンドが担っています。

---

### Diversionでの「変更の取り消し」

Diversionでは、作業ディレクトリ内の変更を特定の状態に戻す際、以下のコマンドを使用します。

#### 1. 特定のファイルの変更を取り消す

Gitの `git restore <file>` や `git checkout -- <file>` に相当します。

```bash
dv revert <file_path>

```

このコマンドを実行すると、指定したファイルに加えられた未コミットの変更が破棄され、最新のレポジトリの状態(HEAD)に戻ります。

#### 2. すべての変更を取り消す

Gitの `git restore .` に相当します。

```bash
dv revert .

```

カレントディレクトリ以下のすべての未コミットな変更を元に戻します。

---

### Gitとの比較表
[バージョン管理システム] DiversionでのUIによるgit restore 相当の操作について [簡単UI] (1/19)_a0034780_17141176.jpg
### 注意点:`dv switch` について

Gitの `checkout` には「ファイルの復元」と「ブランチの切り替え」という2つの役割がありましたが、Diversion(および最近のGit)ではこれらが分離されています。

* **状態の復元:** `dv revert`
* **ブランチの移動:** `dv switch`

Diversionはまだ開発が活発なツールであるため、GUI(Diversion Desktop)を利用している場合は、変更リストから対象ファイルを右クリックして **"Revert"** を選ぶのが最も直感的で安全です。

---

特定のシナリオ(例えば「インデックスだけ戻したい」や「特定のコミット時点のファイルだけ抜き出したい」など)で、さらに詳しく知りたい操作はありますか?

【Q2】
DiversionのUIにおいて、dv revert . と言うのは具体的にどのような操作になりますか?
resetは各ファイル・フォルダを選択し、ハンバーガーメニュー(三点リーダーが縦になったようなアイコン)からResetを選ぶとできます。
【A2】
Diversionのデスクトップアプリ(UI)において、コマンドの `dv revert .`(すべての変更を破棄して最新のコミット状態に戻す)に相当する操作は、**Workspaceタブにある「Reset」ボタン**で行います。

質問者様がすでに見つけられている「ハンバーガーメニューからのReset」は**個別ファイル**に対する操作ですが、全体を一括で戻す方法は以下の通りです。

---

### UIで「すべての変更を取り消す」手順

1. **Workspace(ワークスペース)タブを開く**
* 画面左側のメニューから、現在変更があるファイルが並んでいる「Workspace」を選択します。


2. **右上の赤い「Reset」ボタンをクリック**
* ファイルリストの右上(「Commit」ボタンの近く)に、赤い文字、もしくは赤いアイコンの **「Reset」** ボタンがあります。
* これをクリックすると、現在変更されているすべてのファイルが対象となります。


3. **確認ダイアログで設定を確認**
* ダイアログが表示されます。ここで **「Delete new files」** (新しく作成した未追跡ファイルを削除するかどうか)のチェックボックスがあります。
* `dv revert .` と同様、完全にもとの状態へ戻したい場合はここにチェックを入れて実行します。



### 「Reset」と「Revert」の言葉の違いについて

DiversionのUIでは、未コミットの変更を取り消す操作を一貫して **「Reset」** と呼んでいます。
CLIでの `dv revert` は、Gitの `git restore` (作業コピーの復旧)に近いニュアンスですが、UI上では「作業内容をリセットする」という意味で Reset ボタンに統合されています。

> [!TIP]
> **特定のファイルだけを複数選んで戻したい場合**
> ファイルリストの左側にあるチェックボックスで対象のファイルにチェックを入れると、右上のボタンが「Reset Selected」などに変化し、選択したものだけを一括で戻せます。

---

もし、作業中の変更ではなく「過去にコミットした内容を打ち消す(GitのRevert)」操作をUIで探している場合は、Historyタブから対象のコミットを右クリックして「Undo changes」を選択する流れになります。

次は、ブランチの切り替え(`git switch` 相当)などの操作についても詳しくお伝えしましょうか?

[Unreal Engine 5でのDiversion導入と基本操作](https://www.youtube.com/watch?v=wsOgPmrP-0A)
この動画では、Diversionのデスクトップアプリを使用したコミットや変更の管理、ブランチ操作の基本がUI画面とともに解説されています。


by k1segawa | 2026-01-19 16:58 | 仕事効率化 | Comments(0)