作業を一時避難する
作業を一時避難する方法について解説します。
作業が途中なのでコミットしたくないけど、別のブランチで急遽作業をしないといけなくなったような時に使います。
そのような時に今やっている作業を一時的に避難しておく、コミットはしないけど一旦保存しておくということができます。
今回はその方法について解説します。
それでは、作業を一時避難するコマンドについて確認しましょう。
そのコマンドは、
$ git stash
コマンドになります。
もしくは
$ git stash save
と入力しても大丈夫です。
「save」というのは省略可能なので、「git stash」と「git stash save」は同じコマンドになります。
「stash」というのは「隠す」という意味になります。
ですので、「git stash」で、今やっている作業を隠してしまう、一時避難すると言う事になります。
それではいつも通りイメージで見ておきましょう。
今ワークツリーで作業していて、「index.html」というファイルを変更したとします。
その後また別のファイルを作業していて「top.html」というファイルを変更して、それを「git add」でステージにアップしたとします。
このような状況で、まだコミットするまでは作業が完了していないけど、急遽バグが起きて別のブランチで作業をしないといけなくなったという時にこれらの変更を一時避難するのが「git stash」コマンドです。
「git stash」コマンドを使うことで、変更分をstashに一時避難させます。
これは何が起こっているのかというと、「git stash」と入力することで、「index.html」の変更と、「top.html」の変更を「stash」という場所に一時格納させます。
そして、ワークツリーとステージの変更は無かったことにすることで、別のブランチで作業することを可能にします。
これが「git stash」になります。
実際にやってみよう
それでは、ターミナルに移動して実際にやってみましょう。
まず今のファイルの状況を確認しておきます。
$ git status On branch main nothing to commit, working tree clean
何も変更されていません。
$ ls feature.html first.html index.html main2.html secret.txt feature2.html home.html main.html second.html third.html
今回は何かファイルを変更してその変更分を「git stash」で一時避難させてみましょう。
今回は「home.html」を変更してみます。
それではテキストエディタで「home.html」を開いてみてください。
今回はここに「<p>git stash</p>」と追記します。
追記したら保存してターミナルに戻ります。
では変更状況を確認します。
$ git status On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: home.html no changes added to commit (use "git add" and/or "git commit -a")
すると「home.html」が変更されたと表示されています。
これを「git stash」で一時避難させましょう。
$ git stash Saved working directory and index state WIP on main: 55c46b4 third.htmlを追加
すると、ワークツリーとステージの状態を保存した表示されています。
これで一時避難することができています。
では、今のファイルの変更状況を確認してみます。
$ git status On branch main nothing to commit, working tree clean
特に何も変更されていません。
念のため「home.html」のファイルの中身も確認しておきましょう。
$ cat home.html <p>home</p> <p>git pull</p>
すると先ほど変更した分が無かったことになっています。
このように「git stash」をすることで、変更を別の場所に一時避難させることができます。
今回は一時避難する方法までを解説しました。
次回以降で一時避難した変更を確認する方法や、その変更を復元する方法について解説します。
参考図書
独学で挫折しそうになったら、オンラインプログラミングスクール