Git stashの使い方徹底解説!作業中の変更を一時保存するベストプラクティス

他ツール・他言語との連携
スポンサーリンク

Gitを使って開発を行う際、作業中に現在の変更を一時保存したくなるシチュエーションは多いでしょう。例えば、新しいフィーチャーを実装している最中に緊急のバグ修正が必要になったとき、今の作業をどうにかして中断し、その後スムーズに再開したいですよね。そんなときに役立つのがGitのstashコマンドです。この記事では、git stashの基本的な使い方から応用テクニック、ベストプラクティスまでを徹底解説します。

Git stashとは?

git stashは、作業ツリーの変更を一時的に保存し、クリーンな状態に戻すためのコマンドです。これにより、今の作業を中断することなく他のブランチに切り替えたり、バグ修正を行ったりすることができます。

基本的な使い方

まず、基本的なgit stashの使用方法を見ていきましょう。

1. 変更を一時保存する

作業中の変更を一時保存するには、以下のコマンドを使用します。

git stash

これで、作業ツリーの変更が一時的に保存され、作業ディレクトリは最後にコミットされた状態に戻ります。

2. 保存した変更を確認する

保存した変更はgit stash listコマンドで確認できます。保存された各スタッシュに識別子とメッセージが付けられています。

git stash list

3. 保存した変更を取り出す

作業を再開するには、スタッシュに保存した変更を取り出す必要があります。デフォルトのスタッシュを取り出すには、以下のコマンドを使用します。

git stash apply

特定のスタッシュを取り出したいときは、識別子を指定することも可能です。

4. スタッシュを削除する

スタッシュを適用した後、もしくは不要になった場合は、スタッシュを削除してクリーンにすることができます。

git stash drop

もしくは、すべてのスタッシュを削除したい場合は次のコマンドを使用します。

git stash clear

応用テクニック

git stashの基本を理解したところで、少し高度な使い方についても触れておきましょう。

特定の変更のみをスタッシュする

時には、すべての変更ではなく特定のファイルだけをスタッシュしたいこともあるでしょう。その場合は、以下のようにフラグを使って指定します。

git stash push -p

このコマンドを使うと、インタラクティブに変更を選択してスタッシュできます。

ディレクトリ全体を除外する

特定のディレクトリやファイルをスタッシュしないようにしたいときには、.gitignoreを活用する手もあります。ただし、スタッシュ時に特定のファイルを無視するオプションは直接ありません。

ブランチに直接スタッシュを適用する

作業を中断したブランチ以外に、直接スタッシュを適用したいこともあるかもしれません。そんなときは、以下の手順を使います。

  1. 変更したいブランチに移動
  2. git stash applyを実行

これにより、指定のブランチにスタッシュを適用できます。また、この操作に失敗した場合、コンフリクトが発生することがありますので、しっかり解消しましょう。

ベストプラクティス

git stashの使用における基本ルールや一連の手順をつかんできたところで、実務におけるベストプラクティスを考えてみます。

スタッシュをためすぎない

スタッシュを頻繁に使用しすぎると、管理が煩雑になり、意図しないデータの失いやミスが増える可能性があります。数回なら問題ありませんが、過度な使用は控えましょう。

コミットできる場合は短くてもコミット

特に小規模の変更を繰り返すプロジェクトでは、スタッシュよりも小さくてもコミットすることを優先しましょう。コミットメッセージでステージ間の意図を説明できるため、保持すべきポイントとして有用です。

スタッシュ名を適切に

複数のスタッシュを扱う際には、どれがどれか分からなくなりがちです。git stash save "適切なメッセージ"のように、メッセージを付けて意味がわかるようにすると便利です。

まとめ

git stashは、Gitの強力な機能の一つで、特に同時進行のプロジェクトや緊急事態において真価を発揮します。しかしながら、誤った使い方や濫用すると、逆にプロジェクトの整理を難しくしてしまう可能性もあります。本記事を参考に、正しく便利にgit stashを活用して、より効率的に開発を進めてください。

コメント