はじめに
PHPStorm のバージョン管理のヘルパー機能である、Shelfの使い方メモです。
詳細は公式ドキュメントを参照してください。
→ Gitを使用して複数の機能を同時に処理する
PHPStormの使い方シリーズ
作業用フォルダを用意する
まず、今回作業を行うフォルダを用意します。
この記事では、ローカルリポジトリ上で作業を行います。
% cd ~/Desktop
% mkdir shelf
% cd shelf
ローカルリポジトリを作成します。
% git init
% ls -la
drwxr-xr-x@ 3 mitsuoka-takahiro staff 96 7 29 21:19 ./
drwx------@ 14 mitsuoka-takahiro staff 448 7 29 21:16 ../
drwxr-xr-x 9 mitsuoka-takahiro staff 288 7 29 21:19 .git/
.Git フォルダがあれば OK。
PHPStormでGitツールウィンドウを表示する
View > Tool Windows > Gitから開くことができます。
ショートカットはデフォルトで⌘9に設定されています。
このような感じのウィンドウが開きます。
Shelfで並行開発を楽に管理する
Shelf はgit stashと似た機能で、ブランチをクリーンにできます。
変更リストとの親和性が高く、合わせて使うことで開発中のファイルをより便利に管理できます。
準備
新しいファイルを 3 つ追加し、ステージングします。
ステージングするのは、バージョン管理対象ファイルでないと Local Changes に表示されなからです。
% echo hello > a1.txt
% echo hello > a2.txt
% echo hello > b2.txt
% git add .
Git ツールウィンドウはこのようになっていると思います。
さらに、変更リストadd feature Aにa1.txtとa2.txtを入れておきます。
ファイルをShelfにしまう
Git ツールウィンドウでb2.txtを右クリックし、Shelf Changesを選択します。
コミットメッセージを求められるので、add feature Bと入力し、Shelve Changesをクリックします。
これで Shelf にb2.txtをしまうことができました。
Git ツールウィンドウにShelfタブが表示され、内容を確認できます。
同時に、作業ブランチ上からb2.txtがなくなっていることが確認できます。
% git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: a1.txt
new file: a2.txt
Shelfからファイルを取り出す
Shelfタブのadd feature Bを右クリック、Unshelve...を選択します。
ウィンドウが表示されるので、変更せずUnshelve Changesをクリックします。
Local Changesタブに変更リストadd feature Bが追加され、b2.txtの変更も適用されます。
変更リストをShelfにしまう
ファイルだけでなく、既に作成している変更リストを Shelf にしまうこともできます。
対象の変更リストを右クリック、Shelve Changesを選択することで、Shelf に格納されます。
まとめ
Shelf を使うことで、変更リストと親和性の高いgit stashに似た機能を利用できる。
Shelf にしまったファイルは、ワークツリーから削除されるので、作業ブランチをクリーンに保つことができる。