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
0
Help us understand the problem. What is going on with this article?
@konekato

【Git】中途半端でコミットしたく無いけど別の作業がしたい!(git stash)

More than 1 year has passed since last update.

Git コマンド紹介:stash
まあまあ使うので、まとめておきます。

stash

こんな時に使う

作業が中途半端だ!コミットしたく無い!でも、別のブランチにチェックアウトしたい!

使用例

git stash save:いったん保存

git checkout 別branch
別の作業...
git checkout 元branch

git stash list:保存したものの確認

git stash pop stash@{スタッシュ番号}:保存してたものを戻す(listから消す)
or
git stash apply stash@{スタッシュ番号}:保存してたものを戻す(listに残す)

解説

% git sss
## master...origin/master [ahead 1]
 M index.html

今、masterブランチで作業していて、index.htmlが未コミットです。
stashコマンドを使っていきます。

% git stash save
Saved working directory and index state WIP on master: 6c22e4e add directory

保存できました。これで、別ブランチにチェックアウトしてOK。
branchブランチで別の作業をします。

% git checkout branch
Switched to branch 'branch'

作業...

% git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

作業が終わりmasterブランチに戻ってきました。

% git stash list
stash@{0}: WIP on master: 6c22e4e add directory

保存がしっかり確認できます。これから、戻していきます。

apply(保存を残す)

% git stash apply stash@{0}
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")

これで無事masterでの作業に戻れました。ちなみに、

% git stash list
stash@{0}: WIP on master: 6c22e4e add directory

stash applyはlistに残ります。

pop(保存を残さない)

% git stash pop stash@{0}
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")
Dropped stash@{0} (732983fc2774b21734c7ee64d1d463f42ac6a41f)

% git stash list

stash popはlistに残りません。


その他のstashコマンド

  • git stash save "コメント":コメントをつけて保存
  • git stash drop stash@{スタッシュ番号}:listから消す
  • git stash clear:listから全て消す
0
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
konekato
情報系大学生。ITベンチャー企業でインターンシップもしています。 日常での 成る程 をメモ感覚でアウトプットするために使っています。 gitについては多め。Go, Python を嗜みたい。

Comments

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