IntelliJ IDEA の Git Stash と Shelve

John Wachira 2023年1月30日
  1. Git での変更の棚上げ
  2. Git の棚上げされていない変更
  3. Git のスタッシュ変更
  4. Git に Stash を適用する
IntelliJ IDEA の Git Stash と Shelve

この記事では、IntelliJ IDEA を使用する際に、git stashgit shelve を区別します。作業中にいくつかのタスクを切り替えて、後でそれらに戻りたい場合、2つはクラッチになります。

IntelliJ IDEA を使用すると、進行状況を失うことなく、さまざまな機能に取り組むことができます。隠しておくことも棚に置くこともできます。

この 2つには多くの共通点があります。パッチを生成して適用する場合、大きな違いが生じます。

隠しておくと、Git がパッチを生成し、IntelliJ IDEA または別の IDE を使用してパッチを適用できます。一方、棚上げすると、パッチは IntelliJ IDEA 内で生成および適用されます。

スタッシュはコミットされていないすべての変更を保存しますが、シェルフを使用すると、何をシェルフするかを選択できます。

Git での変更の棚上げ

変更を棚上げするとき、別のタスクに切り替える必要がある場合に後で処理するために、コミットされていない変更を一時的に保存します。IntelliJ IDEA を使用すると、個別のファイルまたはすべての変更を棚上げできます。

生成されたパッチは何度でも適用できます。これが典型的なワークフローです。

  1. IDE で、コミットツールに移動します。そこに到達したら、保存する変更リストまたはファイルを右クリックして、[変更の保存]を選択します。

    git シェルフの変更

  1. 次に、リストを確認し、コミットメッセージでシェルフに名前を付け、シェルフの変更をクリックしてシェルフを保存します。

別の方法は、サイレントオプションを使用することです。IDE には、ダイアログを表示せずにシェルフできる Shelve Silently オプションがあります。

Git の棚上げされていない変更

変更の保留を解除するには、次の手順に従います。

  1. IDE の[シェルフ]タブに移動し、ファイルを選択するか、シェルフを解除する必要のあるリストを変更します。

  2. メニューから[保留解除]をタップし、保留された変更を復元するリストを選択します。既存の変更リストに復元したくない場合は、新しいリストを作成することもできます。

    新しいリストにアクティブのマークを付けることを忘れないでください。

  3. または、Unshelve Silently アイコンを使用して、変更をアクティブな変更リストに移動することもできます。

Git のスタッシュ変更

隠し場所は、現在の作業ディレクトリと HEAD コミットの違いの単なる記録です。ブランチパッチは必要に応じて何度でも適用できます。

それを念頭に置いて:

  1. スタッシュを適用しているときに競合に直面する可能性があります。
  2. コミットされていない変更を含む作業コピーにスタッシュを適用することはできません。

IntelliJ IDEA で変更を隠しておくには、次の手順に従ってください。

  1. Git>コミットされていない変更>Stash Changes に移動します。
  2. 正しいディレクトリを選択し、正しいブランチに切り替えます。
  3. メッセージフィールドに隠し場所を簡単に説明することは常に良いことです。
  4. スタッシュの作成をクリックします。

Git に Stash を適用する

スタッシュを適用するには、次の手順に従います。

  • Git>UncommitedChanges>Unstash Changes に移動します。
  • 正しいディレクトリを選択し、正しいブランチに切り替えます。
  • スタッシュを選択し、表示をクリックしてパッチの適用後に変更されるファイルを確認し、ポップスタッシュを選択してパッチの適用後にパッチを破棄します。
  • [新しいブランチとして]フィールドにブランチの名前を入力することで、新しいブランチを作成してパッチを適用できます。
著者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

関連記事 - Git Stash