はじめに
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 にしまったファイルは、ワークツリーから削除されるので、作業ブランチをクリーンに保つことができる。