12. 高度な機能
Version History and Change Tracking(Gitベースのバージョン管理)
このウィジェットはFreeプランではロックされており、Pro・Enterpriseプランで利用できます。

ファイルの状態を確認する(File Status)
左側のサイドバーでFile Statusを選択すると、現在のプロジェクトで何が変更されたかを一目で確認できます。変更内容は次の3つに分かれます。
- Staged Changes: 次のコミットに含めるよう、すでにマークしておいたファイルの一覧
- Changes: 以前にコミットされたことがあるファイルのうち、内容は変更されたがまだステージしていないファイルの一覧
- Untracked Files: まだ一度もコミットされていない新しいファイルの一覧
一覧でファイルをクリックすると、右側の画面にどの内容が変更されたかが表示されます。
変更のステージ・取り消し(Stage / Discard)

次のコミットに含めるファイルを選ぶことを**ステージ(Stage)と呼びます。ファイル横の+ボタンを押すとそのファイルだけがステージされ、画面上部の[+ Stage All]**を押すと変更されたファイル全体が一度にステージされます。
逆に、変更内容を取り消して以前の状態に戻すには**ディスカード(Discard)を使います。ファイルを右クリックして[Discard Changes]を選ぶとそのファイルだけが元に戻り、画面上部の[Discard All]**を押すとFile Statusに表示された変更全体が一度に元に戻ります。
戻す操作(Discard)は取り消せません。実行する前に、本当に不要な変更かどうかをもう一度確認してください。
リモートとのやり取り(Fetch / Pull / Push)
画面上部ツールバーのアイコンで、リモートリポジトリ(remote repository)と内容をやり取りできます。
- Fetch: リモートにどんな変更があるかを確認するだけで、自分の作業ファイルにはまだ反映しません。
- Pull: リモートの最新の内容を実際に受け取り、自分の作業ファイルに反映します。
- Push: 自分がコミットした変更内容をリモートにアップロードし、ほかの人と共有します。
各アイコンを押すと、詳細オプションを選べるメニューが開きます。
Fetchの詳細オプション

- Fetch: 標準の方式です。接続されたリモートの最新情報を受け取ります。
- Fetch All Remotes: リモートが複数接続されている場合に、すべてのリモートの最新情報を一度に受け取ります。
- Fetch & Prune: 最新情報を受け取りながら、リモートですでに削除されたブランチのローカル追跡情報もあわせて整理します。リモートでは削除されたのに自分のブランチ一覧には残り続ける問題を防ぎます。
Pullの詳細オプション

- Pull: 標準の方式です。リモートの新しい変更を受け取り、自分のローカルの変更と自動的に統合します。2つのブランチがそれぞれ別々に進んでいた場合は、両者を統合したという記録(マージコミット)が履歴に残ります。
- Pull (Rebase): リモートの変更を先に反映してから、その上に自分が作成したコミットを積み直す方式です。マージ記録なしで、履歴が一本にすっきり整理されます。
- Pull (Fast-forward only): 自分のブランチに、まだリモートにない自分だけのコミットがまったくない場合にのみ動作します。「単純に最新の状態へ追いつく」ことだけを許可し、統合が必要な状況では何も変更せずに知らせます。履歴を絶対に触りたくないときに安全に使える方式です。
Pushの詳細オプション

- Push: 標準の方式です。自分がコミットした変更を、すでに接続されているリモートブランチにアップロードします。
- Push & Set Upstream: 新しく作成したブランチを初めてリモートにアップロードするときに使います。このブランチがリモートのどのブランチと対応するかをあわせて指定しておくものなので、これ以降はPushを押すだけでどこにアップロードするかを自動的に記憶します。
- Push Tags: コミットではなく、タグ(バージョン表示用の名札)をリモートにアップロードします。
- Force Push (with lease): リモートの記録を自分の記録で上書きします。
Force Pushは、ほかの人がすでにアップロードしたコミットを消してしまう危険な操作です。実行前に確認画面がもう一度表示され、取り消せないという警告もあわせて表示されます。「(with lease)」が付いている理由は、自分が最後に受け取って以降にリモートへほかの人の新しいコミットがアップロードされていると、実行を止めてくれるためです — 同僚の作業を誤って上書きする事故を減らします。本当に必要な場合でなければ、使用しないことをおすすめします。
ブランチのマージ(Merge)
ツールバーのMergeアイコンを押すと、マージするブランチを選択する画面が開きます。目的のブランチを選択してマージを実行すると、そのブランチの変更が現在作業中のブランチに統合されます。
同じ箇所が互いに異なる形で修正されていて衝突(conflict)が発生した場合は、衝突したファイルごとに次のいずれかを選んで解決します。
- Accept Current: 自分のブランチの変更を維持します。
- Accept Incoming: マージしてくるブランチの変更を適用します。
- Mark as Resolved: 自分で内容を修正したうえで、解決済みとしてマークします。
Build Template and Component Libraries(テンプレートとコンポーネントライブラリの構築)
複数の画面で繰り返し使うウィジェットのまとまりは、1つのコンポーネントとして登録して再利用できます。コンポーネントはプロジェクト内でフォルダ単位に整理して管理します。
- 複数のウィジェットをまとめてコンポーネントとして登録する
- コンポーネントをフォルダに分類して管理する
- 登録しておいたコンポーネントをほかの画面に持ってきて使う
Integrate Backends, Auth, and Payments(バックエンド・認証・決済の連携)
Lucy Studio自体で、認証(ログイン)・決済のための専用機能を準備中です。