【ツール活用|初心者向け】【Git初心者必見】作業途中の変更をスマートに退避!git stashの使い方を解説

1. 導入:なぜgit stashが必要なのか?

開発中に「修正の途中で別の緊急タスクが入った!」「今の作業はまだコミットしたくないけれど、ブランチを切り替えたい」といった状況に陥ったことはありませんか?中途半端な状態でコミットしてしまうと、履歴が汚れてしまい後からの修正も大変になります。そんな時に役立つのが git stash です。これを使えば、作業中の変更を一時的に「倉庫」へ退避させ、ブランチをクリーンな状態に戻すことができます。

2. 基礎知識:git stashとは

git stash は、まだコミットしていない変更(ステージング済み・未ステージングの両方)を一時的にメモリ上のスタックに退避させるコマンドです。作業領域(ワーキングディレクトリ)がきれいになるため、別のブランチに移動して作業を再開したり、プルを行ったりすることが可能になります。

3. 実装/解決策:基本操作の流れ

基本的には以下の流れで操作を行います。
1. 作業中の変更を git stash push で退避させる。
2. 必要な作業(ブランチ移動など)を行う。
3. git stash pop で退避させた変更を元のブランチに復元する。

4. サンプルプログラム:実際に試してみよう

以下のコマンドをコピー&ペーストして、一連の動きを確認してみてください。


1. 現在の変更を退避させる("作業中"というメッセージ付きで保存)
git stash push -m "作業中"

2. 退避したリストを確認する(何が保存されているかチェック)
git stash list

3. 必要に応じて別のブランチへ移動や作業を行う
git checkout main

4. 元のブランチに戻り、退避させた変更を復元する(復元と同時にリストから削除)
git stash pop

補足:復元するがリストには残しておきたい場合は以下を使う
git stash apply

5. 応用・注意点:現場で役立つポイント

現場で活用する上で、以下の点に注意してください。

コンフリクトに注意: 別のブランチでファイルに変更を加えてから git stash pop を行うと、コンフリクト(競合)が発生することがあります。その場合は、通常のGitマージと同じように手動で修正が必要です。
stashは溜めすぎない: git stash list で確認した際に、古いstashが大量に残っていると管理が困難になります。不要になったら git stash drop コマンドで個別に削除するか、git stash clear で一括削除して整理しましょう。
未追跡ファイルも退避したい場合: デフォルトでは新規作成したファイル(Untracked files)はstashされません。含めたい場合は git stash -u を使用してください。

この機能を使いこなせば、割り込みタスクへの対応が格段にスムーズになります。ぜひ日々の開発に取り入れてみてください。

コメント

タイトルとURLをコピーしました