LoginSignup
0
0

🔰5分だけ努力するGit (4)

Posted at

今回取り扱うGitコマンド

・git stash

初めに作業ブランチの変更を一時的に隠すことができるgit stashコマンドを試してみます。
このコマンドは「変更内容をコミットしたくないけど別の作業をしたくなったから保存しておきたいな~」という時に使います。
まず、git-studyディレクトリを開きmainブランチから新たにブランチを切っていきます。
折角なので前回試したgit switchコマンドを使用します。

$ git switch -c study/stash

study/stashブランチが作成できたらstudy.txtを以下のように変更していきます。

- Hello New Branch!
+ Test For Stash Command

保存したらターミナルから以下のコマンドを実行してスタッシュに変更内容を隠していきます。

$ git status
On branch study/stash
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:   study.txt

no changes added to commit (use "git add" and/or "git commit -a")
→ git statusコマンドでstudy.txtが変更されたことを確認

$ git stash push -m "スタッシュに変更内容を隠すときのメッセージ"
Saved working directory and index state On study/stash: changed the text
→ メッセージが必要ない場合は git stash -u コマンドでも可

$ git status
On branch study/stash
nothing to commit, working tree clean
→ もう一度git statusコマンドを実行すると変更内容が隠されていることが確認できる

スタッシュへ変更を隠すことに成功しました。
study.txtも元の文章に戻っていますね。
次に、どのようなスタッシュがあったか、そこにどのような変更内容を隠したかを確認するコマンドを試してみます。

$ git stash list
stash@{0}: On study/stash: changed the text
→ スタッシュのリストを出力する

$ git stash show
 study.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
→ スタッシュの変更内容を出力する

流石に隠した変更内容の詳細まではわからないようですね。。。
しかし一目でスタッシュの状態を確認することができました。

では、スタッシュに隠した変更を戻してみましょう。
コマンドが2種類あるのですが、違いは以下の通りになります。

$ git stash pop
→ 変更内容を戻した後スタッシュのリストから削除する

$ git stash apply
→ 変更内容を戻した後スタッシュのリストから削除しない

今回は残す必要がないためgit stash popコマンドで変更内容を戻していきます。
実行すると、study.txtが今回変更した内容に戻り、git stash listコマンドを実行してもスタッシュリストが空であることが確認できます。

その他にも、git stashコマンドには以下のような機能があります。
・直近に保存した変更内容を戻さずにスタッシュリストから削除したい場合

$ git stash drop

・全てのスタッシュをリストから削除したい場合

$ git stash clear

git stash dropコマンドやgit stash popコマンドなどでスタッシュを指定したい場合

$ git stash drop stash@{n}

$ git stash pop stash@{n}

nの部分はgit stash listコマンドで確認可能です。

今回は以上となります。
前のプロジェクトまでTortoiseGitというGitコマンドを使わなくてもボタンぽちぽちしているだけでGitの操作ができてしまう便利なツールを使っていたのですが、コマンドの方が早くできますし何だか格好良くていいですね。笑
個人的によく使っていた「スタッシュへ変更を隠す」という機能も今回紹介したみたいに様々な機能がありましたし、これから勉強できるのが少し楽しみになりました。

ここまで読んでいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0