プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Git
  • 【Git】スタッシュについて
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Git】スタッシュについて

03.07

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

スタッシュとは?

作業中の変更内容を別の場所に一時的に退避させておくことです。作業中だけど別にやりたいことができたとかで今はコミットしたくないと言う時に使えます。(主なユースケースとしてはPRレビューとかが発生して別ブランチをローカルに取り込みたい時などが多いと思います。もしくは緊急の障害対応など。)

仕組み

スタッシュという場所に一時的に格納しておきます。

コマンド

作業を避難させる。

1
git stash -u

実行すると「ワーキングディレクトリ」上は差分がない状態になります。

-u

「--include-untracked」の略です。新規作成ファイルも退避させることが可能です。

名前をつけて退避する。

1
git stash save "任意のメッセージ" -u

何も名前を指定しないと「stash@{数字}」のような名前になってしまうので非常にわかりづらいです。上記のようにメッセージを指定すると「git stash list」をしたときのその名前で表示されるので後で見たときにわかりやすくなります。

避難した作業の一覧を表示する。

複数回避難させた場合でも複数行に渡って表示されます。

1
Git stash list

避難した情報を復元する。

1
2
git stash apply [スタッシュ名]
git stash apply stash@{数字}

「git stash list」で確認したstashの番号を指定して作業を戻すことができます。作業していたブランチじゃなくても現在作業しているブランチに変更分が適応されます。

なお、数字に関しては最新の避難作業が0で新しい順に番号が1、2と採番されていきます。

ステージの状況も含めて復元する

1
git stash apply —index stash@<span class="o">{</span>0<span class="o">}</span>

「Git stash apply stash@{0}」だとgit addした状態は復元できません。--indexをつけることでaddした状態も復元することが可能です。

差分を表示

1
git diff stash@{0}

指定したstashの差分を閲覧することができます。後でなんの作業なのかわからなくなってしまった場合は使えそうですね。

避難した作業を削除する。

最新作業を削除

1
git stash drop

特定作業を削除

1
2
git stash drop [スタッシュ名]
git stash drop stash@{数字}

git  stash applyで適応したとしても作業履歴は残ったままになります。見づらくなってしまいますので適宜上記コマンドで消しましょう。

全作業を削除

1
git stash clear

スポンサーリンク
  • 2020 03.07
  • miyabisan2
  • コメントを書く
  • Git
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2020 03.04

    【Git】ファイルへの変更を取り消す

  2. 2019 11.20

    【Git】プルやフェッチについて

  3. 2019 11.21

    【Git】コンフリクトに関する知識

  4. 2019 12.14

    【VSCode】Gitとの連携に関する知識

  5. 2019 11.20

    【Git】マージに関する知識

  6. 2020 03.03

    【Git】変更差分(git diff)、変更履歴(git log)を確認する。

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Git】「リベース」に関する知識、コミットログの操作

【DevOps】DevOpsについてやそれを支える様々…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • API
  • AWS
  • C++
  • CSS
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Git
  • GitLab
  • GraphQL
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • WebRTC
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー