logo

ギット |スタッシュの操作

前提条件: Git

Git を使用すると、複数のユーザーが同じプロジェクトで同時に作業できます。開発者がブランチ内の機能に取り組んでいて、他の開発者のブランチから変更を取得する必要がある場合、または他の機能に緊急に取り組む必要があるが、現在取り組んでいる機能が不完全である場合を想定します。この場合、現在動作している機能の部分コードをコミットすることはできません。この新しい機能を追加するには、現在の変更を削除し、別の場所に保存する必要があります。この種の状況に対して、Git は「」として知られる非常に便利なコマンドを提供します。 git スタッシュ '。 git スタッシュ コマンドは、以前に作成したコードを保存し、最後のコミットに戻って新たに開始します。これで、古い機能がローカルに保存されるため、変更を加えることなく新しい機能を追加できます。新しい機能にコミットした後、不完全でコミットされていない古い機能の作業を続けることができます。



Git スタッシュと Git コミット

git リポジトリに変更を保存するには、stash と commit という 2 つの代替方法があります。

Git スタッシュ: 開発者がプロ​​ジェクトに取り組んでいて、変更をコミットせずに保存したい場合は、Git stash コマンドを使用してこれを実現できます。これにより、既存の変更に影響を与えることなく、ブランチを切り替えて他のプロジェクトに取り組むことができます。必要に応じていつでも変更をロールバックでき、現在の状態が保存され、開発者は以前の状態にロールバックされます。

Git コミット: 開発者は、ソース コードへの変更をリポジトリ履歴に永続的に保存したいと考えています。の gitコミット コマンドを使用してこれを実現できます。 Git は、変更を文書化する新しいコミットを作成し、リポジトリ履歴に追加します。



総括する。 Git コミットは変更をリポジトリ履歴に永続的に保存しますが、Git stash は作業中だがまだコミットする準備ができていないファイルのバックアップを作成するために使用されます。

Git Stash と Git Reset

両方のコマンドを組み合わせて Git リポジトリへの変更を管理でき、さまざまな使用例があります。

Git reset と Git stash これら 2 つのコマンドを使用すると、以前に削除されバックアップされたすべてのファイルを現在の作業ディレクトリに復元できます。これら 2 つの主な違いは次のとおりです。



Git スタッシュ

Git リセット

Git stash は、変更が加えられてコミットする準備ができていないファイルを保存するために使用されます。

Git リセットは変更を完全に元に戻し、ブランチ ポインタを新しいコミットに変更します。

開発者は、現在の変更に影響を与えることなく、ブランチを切り替えて他のタスクに取り組むことができます。

すでに行われた変更は、Git のリセットによって破棄されます。

Git Stash と Git Stage

ステージングは​​後続のコミットに備えて変更を準備するために使用され、Git stash は変更されたがまだコミットする準備ができていないファイルのバックアップを作成するために使用されます。両方のコマンドを組み合わせて Git リポジトリへの変更を管理でき、さまざまな使用例があります。

Git スタッシュ Git ステージ
Git stash はファイルのバックアップを取得するために使用されます ファイルは、git ステージを使用して git インデックスに追加されます。

Git stash は、機能またはバグ修正の作業中に別のタスクまたはブランチに切り替える必要がある場合に使用されます。

git add コマンドを使用すると、Git ステージの変更が後続のコミットに含まれます。

Git Stash 履歴を保存するフォルダーはどれですか?

git stash を使用すると、データはローカル リポジトリに stash の形式で保存されます。デフォルトでは、データは git/refs/stash ファイルに保存されます。このファイルには、他の Git オブジェクトと同様に、すべての参照が保存され、実際のデータは .git/objects ディレクトリに保存されます。

ヒープ化ソート

以下のコマンドは、作成されたすべてのスタッシュをリストするために使用されます。

git stash list>

Git に変更をどのように隠しますか?

コミットされていない変更を後で使用できるように保存するには、 「git スタッシュ」 指示。このコマンドは、ローカルの変更を保存し、HEAD コミットと一致するように作業ディレクトリを元に戻すので、クリーンな作業ディレクトリが得られます。

最も広く使用されている重要なオプションをいくつか示します。

    Git スタッシュ Git スタッシュの保存 Git スタッシュのリスト Git スタッシュの適用 Git スタッシュの変更 Git スタッシュのポップ Git スタッシュのドロップ Git スタッシュのクリア Git スタッシュのブランチ

作業内容を隠しておく (Git Stash)

git stash>
git ステータス

デフォルトでは、実行中 git スタッシュ インデックスに追加された変更 (ステージングされた変更) と、Git によって現在追跡されているファイルに加えられた変更 (ステージングされていない変更) を隠します。追跡されていないファイルを隠しておくには、次を使用します。 git stash -u

複数のスタッシュを管理する(Gitスタッシュリスト)

複数の隠し場所を作成し、 「git スタッシュリスト」 指示。各スタッシュ エントリはその名前とともにリストされます (例: 隠し場所@{1} )、エントリが作成されたときに現在のブランチの名前、およびエントリの基になったコミットの簡単な説明。

git stash list>
git スタッシュリスト

スタッシュにさらに多くのコンテキストを提供するには、次のコマンドを使用してスタッシュを作成します。

git stash save 'message'>

Git Stash apply と POP とは(Git Stash apply & POP)

以前に隠した変更を再適用するには、 「git stash ポップ」 または 「git stash apply」 コマンド。両方のコマンドの唯一の違いは、 「git stash ポップ」 スタッシュから変更を削除し、作業コピーに変更を再適用します。 「git stash apply」 スタッシュから変更を削除せずに、作業コピー内の変更のみを再適用します。簡単に言うと、 ポップ スタッシュリストから状態を削除しますが、 適用する スタッシュリストから状態を削除しません。後続のコマンドを使用すると、保存された変更を再適用できます。最新のスタッシュが作業ディレクトリに適用され、スタッシュのリストからも取得されます。

git stash pop>
git スタッシュポップ
git stash apply>
git stash 適用

デフォルトでは 「git stash ポップ」 または 「git stash apply」 最後に作成したスタッシュを再適用します: stash@{0} 適用するスタッシュを選択するには、最後の引数として識別子を渡すことができます ( たとえば。 :- git stash Pop stash@{2})。

Git スタッシュ ショー

git スタッシュ ショー コマンドは、スタッシュで実行された操作の概要を表示するために使用されます。

git stash show>
git スタッシュ ショー

スタッシュからブランチを作成する (Git Stash ブランチ)

スタッシュが最初に作成されたコミットから始まる新しいブランチを作成してチェックアウトし、スタッシュに保存された変更を適用する場合は、次を使用します。 「git stash ブランチ ブランチ名 スタッシュ名」 。引数として指定された stash を削除し、stash が指定されていない場合は最新の stash を削除します。

git stash branch newbranch stash@{0}>
git スタッシュ ブランチ

スタッシュのクリーンアップ(Git Stash Clear)

特定のスタッシュを削除するには ( 例: – stash@{1})、使用します 「git stash ドロップ stash@{1}」 。デフォルトでは、このコマンドはドロップします。 隠し場所@{0} 引数が指定されていない場合 ( git スタッシュドロップ )。すべてのスタッシュを一度に削除するには、 「git stash クリア」 指示。

Git スタッシュ クリア

git stash コマンドを使用すると、コミットされていない変更を保存し、将来必要に応じて使用できるようになります。 git stash コマンドを使用すると、ファイルは自動的にバックアップされます。これにより、ブランチを切り替えて雑用を実行し、再び作業する準備ができたときにファイルを簡単に戻すことができます。

Git スタッシュ

追跡されていないファイルまたは無視されたファイルを隠しておく

git stash コマンドを使用して、追跡されていないファイルまたは無視されたファイルを隠します。以下の手順に従って、ファイルを隠しておくことができます。

ステップ1: 以下のコマンドを使用して、その変更を隠します。

git stash save --include-untracked>

–include-untracked これにより、追跡されていないファイルもすべて隠蔽されます。

ステップ2: スタッシュを確認します。

以下のコマンドを使用して、スタッシュが作成されたことを確認します。

git stash list>

ステップ 3: 次のコマンドを使用すると、スタッシュを元に戻して適用できます。

git stash apply stash@{0}>

ステップ 4: スタッシュの戻しが完了したら、不要な場合は、次のコマンドを使用してスタッシュを削除できます。

git stash drop stash@{0}>

Git Stash のベスト プラクティス

を使用するためのベスト プラクティスをいくつか紹介します。 Git スタッシュ 指示。

  1. git stash を使いすぎないでください。 Git stash は、別のタスクに取り組むことが非常に重要な場合には適度に使用する必要があります。コミット時に行う必要がある変更に影響を与えるため、git stash のみを使用する必要があります。
  2. 不必要なメッセージを避ける: git stash を使用すると、隠している変更を説明するメッセージを追加できます。メッセージを意味のあるものにしましょう。後で隠し場所に何が入っているかを思い出す必要がある場合、これは便利です。有益かつ刺激的で、隠蔽されている変更を正確に反映するステートメントを採用します。
  3. 支店を雇用する: スタッシングは、Git ブランチを操作するときに便利なツールです。変更を隠しておく前に、新しいブランチを作成して、現在の変更に影響を与えることなく別のタスクやブランチに切り替えることができるようにします。もう一度変更に取り組む準備ができたら、ブランチに戻り、スタッシュを適用します。
  4. 変更はできるだけ早く行う必要があります。 保存は一時的な解決策としてのみ使用してください。一連の変更を完了したら、それらをリポジトリにコミットして変更の記録を保存する必要があります。