Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1305
Help us understand the problem. What is going on with this article?
@fukajun

変更を一時的に退避!キメろgit stash

More than 5 years have passed since last update.

gitは、とにかくトピックブランチを作成して作業する。だいたい機能追加とかバグ修正とかの単位でブランチを作って作業します。(ちゃんとやってますよね?)
なので、作業の途中で別の修正を優先してお願いっ!なんて言われたときは、別のブランチに切り替えて作業をする必要がでてくる。そんな時に変更を一時的に退避しておくことのできる機能、それがstashである。
では、早速使い方
まだcommitしていない状態の変更ファイル(addしてる or add していない)が存在する状況で、次のコマンドを実行すると変更ファイルを退避することができる。

 $ git stash save

※saveは、省略することもできる。

これでファイルの退避完了!git statusとか見てみると変更状態であったファイルがなくなっている。この状態なら安心してブランチを切り替えることもできる。めでたしめでたし。
と、退避だけならこれで終わりだけど、次につかうときに変更ファイルを取り出したい。

  • いまどんな変更を退避しているかを確認

2つの変更を保存している状態(2回stashを行った状態)

 $ git stash list
 stash@{0}: WIP on sub: a0d2f1b add fourth line
 stash@{1}: WIP on sub: 1a61919 add second line
<stash名>: WIP on <stashを行ったブランチ名>: <ハッシュ> <コミットコメント>

※ハッシュ、コミットコメントはstashを行った時のHEADのもの

次のようにすると、さらに変更内容もみれるので便利!(git logのオプションが使える)

 $ git stash list -p
  • さらに各変更について詳しく見たい場合、変更内容に含まれるファイルの一覧が見れる。
 $ git stash show <stash名>
  • 復活させたいstash名がわかったら次のコマンドで取り出すことができる。
 $ git stash apply stash@{0}
  • stash applyで変更を復活した場合は、stashリストのなかに復活済みの変更が残されているこれを削除するには、次のコマンドを使用する。
 $ git stash drop <消したいstash名>
  • 変更の復活と、削除を同時に行う。
 $ git stash pop stash@{0}

stashが溜まってくると、なんの変更だったか、どれが必要な変更だったかわからなくなるのでこまめに消
したり管理するのが大切ですよー

応用

git apply で、変更を復活して適用したんだけど、やっぱやめとこうってときにこんなこんなやりかたで取り消せます。前半はgit stash show -p でパッチ形式で出力、それをgit apply -Rでパッチを逆に適用しています。

 $ git stash show <適用したstash名> -p | git apply -R

終わりに

とっても基礎的なこと書いたけど、とりあえずgitを使えるようになるには、読んでわかった気になる前に手を動かして、コマンドが馴染んでくるまで何回も素振りをするのが近道だと思ってます。

1305
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
fukajun

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1305
Help us understand the problem. What is going on with this article?