PyCharm 2025.1 ヘルプ

シェルブまたはスタッシュの変更

場合によっては、未完了のままのタスクを切り替えて、元に戻る必要があることがあります。作業内容を失うことなく複数の異なる機能に取り組むには、保留中の変更をシェルブまたはスタッシュすることができます。

シェルブ vs スタッシュ

スタッシュの変更はシェルブと非常に似ています。

  • スタッシュは Git によって生成され、PyCharm 内または PyCharm 外から適用できます。

  • 保留された変更を含むパッチは PyCharm によって生成され、IDE を通じて適用されます。

また、スタッシュにはコミットされていないすべての変更が含まれますが、変更を保留する場合は、すべての変更を保留するのではなく、ローカルの変更の一部を選択できます。

スタッシュとシェルフタブを組み合わせる

スタッシュシェルフの両方で作業したい場合は、スタッシュタブとシェルフタブを 1 つに組み合わせることができます。

  1. Ctrl+Alt+S を押して設定を開き、バージョン管理 | Git | スタッシュを選択します。

  2. スタッシュとシェルフを 1 つのタブにまとめるオプションを有効にします。

    結合タブでは、スタッシュ保留中の変更の両方を操作できます。

    The Stashes and Shelves tab

変更のシェルブとアンシェルブ

シェルフは、まだコミットしていない保留中の変更を一時的に保存しています。これは、たとえば、別のタスクに切り替える必要があり、後で作業するために変更を脇に置いておきたい場合に役立ちます。

PyCharm を使用すると、個別のファイルと変更リスト全体の両方をシェルブできます。

保留にすると、必要に応じて何度でも変更を適用できます。

変更をシェルフに退避

  1. コミットツールウィンドウ Alt+0 で、シェルブするファイルまたは変更リストを右クリックし、コンテキストメニューから変更をシェルフに退避を選択します。

    Shelving changes
  2. 変更をシェルフに退避ダイアログで、変更されたファイルのリストを確認します。

  3. コミットメッセージ: フィールドに、作成するシェルブの名前を入力し、変更をシェルフに退避ボタンをクリックします。

変更をシェルフに退避ダイアログを表示せずに、変更をサイレントにシェルフすることもできます。これを行うには、シェルフするファイルまたは変更リストを選択し、ツールバーの Shelve silently 確認なしでシェルフに退避をクリックするか、Ctrl+Shift+H を押します。シェルフ名として、シェルフする変更を含む変更リストの名前が使用されます。

同じ名前のシェルフが多数存在することを避けるために (たとえば、デフォルトなど)、ファイルまたは変更リストをコミットタブからコミットツールウィンドウのシェルフタブにドラッグし、アクティブになるまで 1 秒ほど待ちます。マウスボタンを放した後、新しいシェルフ名を編集します。

変更をアンシェルブ

保留中の変更は、延期された変更をシェルブから保留中の変更リストに移動することです。切り詰められていない変更は、ビューから除外したり、シェルフから削除することができます。

  1. シェルフタブで、シェルフを解除する変更リストまたはファイルを選択します。

  2. Ctrl+Shift+U を押すか、選択項目のコンテキストメニューからアンシェルブを選択します。

    Unshelving changes
  3. 変更をアンシェルブダイアログで、保留されていない変更を復元する変更リストを名前フィールドに指定します。リストから既存の変更リストを選択するか、作成する新しい変更リストの名前を入力できます。新しい変更リストの説明をコメントフィールドに入力できます (オプション)。

    新しい変更リストをアクティブにする場合は、アクティブにするを選択します。それ以外の場合、現在アクティブな変更リストはアクティブのままです。

  4. PyCharm で、非アクティブ化されたときに新しい変更リストに関連付けられたタスクのコンテキストを保存し、変更リストがアクティブになったときにコンテキストを復元するようにするには、コンテキストを追跡するオプションを選択します (詳細については、タスクとコンテキストを参照してください)。

  5. シェルフ解除しようとしている変更を削除する場合は、正常に適用したファイルをシェルフから除去するオプションを選択します。シェルフ解除されたファイルはこのシェルフから削除され、別の変更リストに追加され、適用済みとしてマークされます。コンテキストメニューから削除を選択して明示的に削除するまで、完全には削除されません。

  6. OK をクリックします。パッチされたバージョンと現在のバージョンの間に競合が発生した場合は、Git の競合を解決する説明に従って解決してください。

変更をアンシェルブダイアログを表示せずに、変更をサイレントに解除することもできます。これを行うには、解除するファイルまたは変更リストを選択し、ツールバーの the Unshelve Silently icon 確認なしでアンシェルブをクリックするか、Ctrl+Alt+U を押します。解除されたファイルは、アクティブな保留中の変更リストに移動されます。

ファイルまたは変更リストを「シェルフ」タブから「コミット」タブにドラッグして、サイレントにアンシェルブすることもできます。Ctrl キーを押しながらドラッグすると、コミットタブにコピーされますが、シェルフにも保持されます。

保留された変更を破棄

  1. シェルフビューで、保持したくない変更を含む変更リストを選択します。

  2. 変更リストを右クリックし、コンテキストメニューから削除を選択するか、Delete を押します。

保留されていない変更を復元する

PyCharm を使用すると、必要に応じてアンシェルブされた変更を再適用できます。アンシェルブされたすべての変更は、コンテキストメニューから削除を選択して明示的に削除されるまで再利用できます。

  1. 表示をクリックし、すでにアンシェルブ済みオプションが Already Unshelved 有効になっていることを確認します。

  2. 復元するファイルまたはシェルフを選択します。

  3. 選択のコンテキストメニューから復元を選択します。

外部パッチを適用する

PyCharm の内部または外部に作成されたパッチをインポートして、保留変更として適用することができます。

  1. シェルフビューで、コンテキストメニューからパッチのインポートを選択します。

  2. 表示されたダイアログで、適用するパッチファイルを選択します。選択したパッチがシェルフタブにシェルフとして表示されます。

  3. パッチを適用して新しく追加されたシェルフを選択し、選択したコンテキストメニューから変更をアンシェルブを選択します。

ベースリビジョンの自動シェルフ

Git バージョン管理下にあるファイルの基本リビジョンを常にシェルブするように PyCharm を構成すると便利な場合があります。

  1. Ctrl+Alt+S を押して設定を開き、バージョン管理 | シェルフを選択します。

  2. 分散バージョン管理システム下にあるファイルのシェルブベースリビジョンオプションを選択してください。

    このオプションを有効にすると、ファイルのベースリビジョンがシェルフに保存されます。シェルフの適用によって競合が発生した場合、3 方向マージ(英語)の実行時にこのシェルフが使用されます。このオプションを無効にすると、PyCharm はプロジェクト履歴からベースリビジョンを検索しますが、これには時間がかかる場合があります。また、競合するシェルフのベースリビジョンが見つからない場合もあります(たとえば、リベース操作の結果として履歴が変更された場合など)。

デフォルトのシェルフの場所を変更する

デフォルトでは、シェルフディレクトリはプロジェクトディレクトリにあります。ただし、デフォルトのシェルブの位置を変更したい場合があります。これは、たとえば、作業コピーをクリーンアップするときに誤ってシェルフを削除しないようにしたい場合や、シェルフを別のリポジトリに保存してチームメンバー間でシェルフを共有できるようにしたい場合に便利です。

  1. Ctrl+Alt+S を押して設定を開き、バージョン管理 | シェルフを選択します。

  2. シェルブロケーションの変更をクリックし、開いたダイアログで新しい場所を指定します。

  3. 必要に応じて、退避済みの変更を新しい場所に移動を選択して、既存のシェルフを新しいディレクトリに移動します。

未完成の作業を失うことなく、別のタスクに切り替えるためのシェルブからの恩恵を受ける方法に関するこのビデオチュートリアルを参照してください。

変更のスタッシュ

場合によっては、作業コピーを HEAD コミットと一致させるために元に戻す必要があるかもしれませんが、すでに行った作業を失いたくない場合があります。これは、作業に関係する可能性のあるアップストリームの変更があることがわかった場合、または緊急の修正が必要な場合に発生する可能性があります。

スタッシュには、HEAD コミットと作業ディレクトリ(スタッシュ)の現在の状態との違いを記録することが含まれます。インデックスへの変更も隠しておくことができます。

スタッシュ解除は、ブランチに格納されたスタッシュを適用することを含みます。

既存のブランチにスタッシュを適用するか、それに基づいて新しいブランチを作成することができます。

スタッシュは、必要なブランチに何度でも適用できます。必要なブランチに切り替えるだけです。それを念頭に置いて:

  • 一連のコミット後にスタッシュを適用すると、解決する必要がある競合が発生します。

  • コミットされていない変更を含む作業コピーである、「ダーティ」な作業コピーにスタッシュを適用することはできません。

変更をスタッシュに保存する

  1. コミットツールウィンドウ Alt+0 で右クリックしてコンテキストメニューを開き、Git | 変更のスタッシュを選択します。

    The Stash Changes option in the context menu
  2. 開いているスタッシュダイアログで、適切な Git ルートを選択し、正しいブランチがチェックアウトされていることを確認します。

  3. メッセージフィールドには、隠そうとしている変更を記述します。

  4. スタッシュのローカル変更を行い、検査およびテストのためにインデックスにステージングされた変更を作業ツリーに持ち込むには、インデックスを保持するオプションを選択します。

  5. スタッシュの作成をクリックします。

    スタッシュの変更は、同じコミットツールウィンドウ内のコミットタブの隣のスタッシュタブに移動されます。

スタッシュを適用する

  1. コミットツールウィンドウ Alt+0 で、スタッシュタブを開きます。

    The Stash tab
  2. スタッシュのリストから適用するスタッシュを選択します。

    スタッシュファイルの変更を確認する場合は、リストから任意のファイルをダブルクリックして、スタッシュの差分を開きます。

    • 適用をクリックすると、選択したスタッシュが適用され、リストに保持されます。

    • 選択したスタッシュを適用し、リストから削除するには、ポップをクリックします。

  3. 現在チェックアウトされているブランチに適用するのではなく、選択したスタッシュに基づいて新しいブランチを作成できます。

    スタッシュを右クリックしてコンテキストメニューを開き、削除を選択します。

    新規ブランチとしてフィールドにそのブランチの名前を入力します。

    スタッシュインデックスの変更を適用するには、インデックスを戻すオプションを選択します。

    スタッシュの適用をクリックします。

スタッシュを削除するには、リストで選択し、右クリックしてコンテキストメニューを開き、ドロップを選択します。すべてのスタッシュを削除するには、クリアを選択します。

関連ページ:

ファイルを Git に追加し、変更を追跡する

Git にファイル追加コミットツールウィンドウを開きます。を押すか、コンテキストメニューから VCS に追加を選択して、バージョン管理外ファイル変更リスト内のファイルをバージョン管理下に置きます。変更リスト全体を追加することも、個別のファイルを選択することもできます。プロジェクトで Git 統合を有効にしている場合、PyCharm は、新しく作成された各ファイルをバージョン管理下に追加することを提案します。この動作は、の設定ダイアログで変更できます。特定のファイルを常にバージョン管理しないよう...

タスクを管理する

プロジェクトで作業する場合は、完了する必要のある小さな作業で作業を整理できます。これらは、自分で設定したタスクです。PyCharm では、大きな作業を小さなタスクに分割し、変更リストに関連付けることができます。これらは、課題追跡システムからのタスクである可能性もあります。例: PyCharm から直接割り当てられたタスクやバグを処理できます。これを可能にするには、IDE とトラッカーアカウントを接続します。課題追跡との統合を構成する:PyCharm は次のものとの統合をサポートします。Jira...

Git の競合を解決する

チームで作業しているときに、現在作業中のファイルに誰かが変更をプッシュするという状況に遭遇する可能性があります。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。しかし、同じ行が影響を受けた場合、Git は無作為に一方を他方を選ぶことはできず、衝突を解決するように求めます。Git では、プル、マージ、リベース、チェリーピック、変更のスタッシュ解除、またはパッチの適用のいずれかの操作を実行しようとすると、競合が発生する可能性があ...

Git ブランチの管理

Git では、ブランチは、たとえば機能の作業が必要な場合や、リリースのためにコードベースの特定の状態を固定する必要がある場合などに、メインの開発ラインから分岐できるようにする強力なメカニズムです。PyCharm では、ブランチによるすべての操作は Git ブランチポップアップで実行されます。これを呼び出すには、メインウィンドウのヘッダーで、現在チェックアウトされているブランチの名前を持つ Git ウィジェットをクリックします。Git ツールウィンドウのブランチペインで、ブランチを管理し、複数のブラン...