ツール プログラミング

[GitStash]開発中に別の作業をスムーズに行う方法

 

WEB開発業務中に、作業が割り込んでくることはよくあるケースと思います。

現在はGit(バージョン管理システムの一つ)がより広く普及し、うまく使えば、「スムーズに作業を中断して、別作業をし、そして、また元の作業に戻る」といったことが簡単に行えます。

 

今回は、それを可能にしてくれる「Git Stash」を紹介します。

開発途中に別の作業が入る時

割り込み作業の例として、開発業務をしている最中に、出したプルリクの修正作業が入ったり、別のブランチに切り替えて、作業確認を行いたいなど、色々なケースがあると思います。

現ブランチでファイルに変更を加えているのに、一区切りまで作業を進めて、本当はすぐにアクションをとりたい?のに、身動きをとれない経験がある人も多いのではないでしょうか?(しらんけどw)

 

バージョン管理システムを導入して開発業務を行うことはデフォルトスタンダードになりつつあると思います。そのGitの機能「GitStash」を駆使すれば、作業途中で意図しないコミットをして、とりあえず変更履歴を綺麗にした状態(これが特に汚えコミットになりやすい)で別の作業に移ったりする必要もありません。

 

git stash save

まず、開発作業を途中で中断するために、バージョン管理下ディレクトリで以下のコマンドを打ちましょう。Gitはインストールされているものとする・・

 command
git stash save

これで、現時点での変更されているファイル内容を保存してくれます。(既にコミットしたものは対象外)

複数ファイルであろうと、何せ、変更検知があるファイル全て保存してくれる便利なやつです。

保存された変更は、現在変更がなかったように振る舞うこともポイント。これでブランチを切り替えたり、自由に別の作業ができる状態になる。git statusで確認してみてください。変更がないという形が確認できる(クリーンだよ!と言ってくれる)はずです。

 

git stash list

スタッシュし、変更をひとまとめにしたファイル群は、以下のコマンドで確認できます。

 command
git stash list

各stashごとを以下のようにリスト群で確認できるので、どの番号のものが自分の目的のリストなのか判断がつきます。

 list
stash@{0}: WIP on main: 5002d47 our new homepage
stash@{1}: WIP on main: 5002d47 our new homepage
stash@{2}: WIP on main: 5002d47 our new homepage

呼び出すIDとしては「stash@{0}」を指定します。連番を目安にすればよいでしょう。各ブランチ名もリスト表示されるので、わかりやすいですね。

呼び出したり、削除したり、といったこともgit stash list で確認してから作業を行いましょう。

 

git stash apply

別作業を完了後、元の作業に戻りたい時」それを呼び出すのがapplyの役目です。

 command
git stash apply stash@{0}

呼び出すstash番号(ID)を指定すれば、その作業内容を呼び出すことができます。

注意としては、作業内容を呼び出す前に「変更内容を呼び出したい対象のブランチになっているか」を気を付けるようにしましょう。(まあ、間違ってもどないでもなるんですけども)

上記のコマンドは、例として、以下のstashを呼び出しました。

呼び出したstash

stash@{0}: WIP on main: 5002d47 our new homepage

applyされた変更内容は現ブランチを対象としているので、逆に言えば、「違うブランチで変更保存を行ったけども、違うブランチでその変更内容を取り入れたい」といったことも余裕でできますね。

 

git stash drop

dropっていうだけに、不要になった作業内容は削除してくれます。お掃除はしておきましょう。

git stashは便利な反面、ゴミが溜まりやすい状況になる?と思われるので、定期的に削除しておくことをオススメします。(好きにしたらええけども)

 

僕の場合、stashを呼び出した後、作業が終わればコミットしてプルリク出して、という流れになる(皆同じか・・)ので、プルリクを出した時点で、stashが再度必要になるケースはほぼないので、そのタイミングで削除しています。(どれがどれかわからんようになるのは良くないので)

 

最後に

コマンドを1つ覚える(オプションは4つ)だけで、超絶作業が捗ります。まだGitを使いこなせていない人は勿体無いです。gitは他にも便利な機能がたくさんあります。

最低限の使い方を覚えるのは必須(クローンしてー、ブランチきってー、チェックアウトしてー、コミットしてー、プッシュしてーなどありきたりな流れ)ですが、ちょっと毛の生えた使い方を覚えるだけで、作業効率が上がるので、ぜひ覚えましょうー!(無理強いはせーへん)

-ツール, プログラミング
-

© 2021 FuwaFuwaShoChan BLOG