Git でスタッシュを復元する

Abdul Jabbar 2023年6月20日
  1. Git の Stash の変更
  2. Git に保存された変更を表示する
  3. Git に保存された変更を復元する
  4. Git に保存された変更を削除する
Git でスタッシュを復元する

Git を使用しているときに、リモート リポジトリから最新の変更をプルしたい状況に直面することがあります。これは、既存の変更またはファイルと競合し、これらのファイルを stash にプッシュする必要があります。

Git は、行った変更のスナップショットをリポジトリにコミットせずに保存する機能を提供します。この Git 領域は Stash と呼ばれます。

作業ツリーにもステージング領域にも関連付けられていません。 変更を一時的に保存し、作業ツリーを消去して新しい作業を開始するのは非常に効率的な機能です。

後で必要に応じて、行った変更を省略または元に戻し、新しいブランチまたは別のブランチに再適用できます。

この記事では、git stash について説明し、stash を回復する際の Git の厄介な状況を克服する方法について説明します。 この関数は、コミットしたくないブランチを変更したが、別のブランチに変更したい場合に使用されます。

Git の Stash の変更

任意の目的でスタッシュに変更を保存するには、次のコマンドを実行します。

git stash save "optional message for yourself"

上記のこのコマンドは、変更を保存し、作業ディレクトリに戻します。 隠した変更は、そのリポジトリのどのブランチからでも利用できます。

ノート
隠しておきたい変更は、追跡対象のファイルにある必要があります。 新しいファイルを作成して変更を保存すると、保存するローカル変更がありませんというエラーが表示されます。

Git に保存された変更を表示する

隠した変更のリストを表示するには、次のコマンドを実行します。

git stash list

このコマンドは、前述のように、保存された変更のリストを stash@{0} の形式で表示します。 stash@{0} は stash の名前を示し、数字を含む中括弧 ({ }) はその stash のインデックスです。

隠した変更が多数ある場合、各セットは保存されたシーケンスに従って異なるインデックスを持ちます。

スタッシュで行った変更を忘れた場合は、次のコマンドでそれらを表示できます。この下のコマンドは、スタッシュでの過去のすべての変更を表示します。

git stash show stash@{0}

Git に保存された変更を復元する

スタッシュされたバケットからスタッシュされた変更を回復または取得し、将来作業する現在のブランチにそれらを適用するには、2つの方法があります。 両方のコマンドを 1つずつ以下に示します。

Git Stash 適用

以下のコマンドを使用して、コピーを隠し場所に残す変更を適用できます。また、何らかの理由で使用したい場合は、将来それを使用できます。

git stash apply STASH-NAME

複数の stash がある場合は、指定された stash のみを取得するように stash の名前を特に言及できます。

git stash apply

名前を入力しない場合、Git は、前回プッシュされた stash の先頭を自動的に適用します。

Git スタッシュ ポップ

以下のコマンドを使用して変更を適用することもできますが、このコマンドはファイルをスタッシュから削除し、将来は使用できなくなります。

git stash pop STASH-NAME

Git に保存された変更を削除する

隠した変更を適用後に削除するときはいつでも、次のコマンドを実行します。 それでも、このコマンドは隠し場所からすべての変更を削除し、今後はそれらを使用できなくなります。

git stash drop STASH-NAME

隠し場所全体を消去するには、次のコマンドを実行します。

git stash clear
著者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

関連記事 - Git Stash