シェルブまたはスタッシュの変更
場合によっては、未完了のままのタスクを切り替えて、元に戻る必要があることがあります。作業内容を失うことなく複数の異なる機能に取り組むには、保留中の変更をシェルブまたはスタッシュすることができます。
Shelve 対スタッシュ
スタッシュの変更はシェルブ付けと非常に似ています。
また、スタッシュにはコミットされていないすべての変更が含まれますが、変更を保留する場合は、すべての変更を保留するのではなく、ローカルの変更の一部を選択できます。
変更のシェルブとアンシェルブ
シェルフは、まだコミットしていない保留中の変更を一時的に保存しています。これは、たとえば、別のタスクに切り替える必要があり、後で作業するために変更を脇に置いておきたい場合に役立ちます。
PyCharm を使用すると、個別のファイルと変更リスト全体の両方をシェルブできます。
保留にすると、必要に応じて何度でも変更を適用できます。
変更をシェルフに退避
コミットツールウィンドウ Alt+0 で、シェルブするファイルまたは変更リストを右クリックし、コンテキストメニューから変更をシェルフに退避を選択します。
変更をシェルフに退避ダイアログで、変更されたファイルのリストを確認します。
コミットメッセージ: フィールドに、作成するシェルブの名前を入力し、変更をシェルフに退避ボタンをクリックします。
変更をシェルフに退避ダイアログを表示せずに、サイレントに変更をシェルブすることもできます。これを行うには、保留するファイルまたは変更リストを選択し、ツールバーの確認なしでシェルフに退避アイコン をクリックするか、Ctrl+Shift+H を押します。シェルブしたい変更を含む変更リストの名前がシェルフ名として使用されます。
同じ名前のシェルフが多数存在することを避けるために (たとえば、デフォルトなど)、ファイルまたは変更リストを <ブランチ> にコミットするタブからコミットツールウィンドウのシェルフタブにドラッグし、アクティブになるまで 1 秒ほど待ちます。マウスボタンを放した後、新しいシェルフ名を編集します。
変更をアンシェルブ
保留中の変更は、延期された変更をシェルブから保留中の変更リストに移動することです。切り詰められていない変更は、ビューから除外したり、シェルフから削除することができます。
シェルフタブで、シェルフを解除する変更リストまたはファイルを選択します。
Ctrl+Shift+U を押すか、選択項目のコンテキストメニューからアンシェルブを選択します。
変更をアンシェルブダイアログで、保留されていない変更を復元する変更リストを名前フィールドに指定します。リストから既存の変更リストを選択するか、作成する新しい変更リストの名前を入力できます。新しい変更リストの説明をコメントフィールドに入力できます (オプション)。
新しい変更リストをアクティブにする場合は、アクティブにするを選択します。それ以外の場合、現在アクティブな変更リストはアクティブのままです。
PyCharm で、非アクティブ化されたときに新しい変更リストに関連付けられたタスクのコンテキストを保存し、変更リストがアクティブになったときにコンテキストを復元するようにするには、コンテキストを追跡するオプションを選択します (詳細については、タスクとコンテキストを参照してください)。
アンシェルブしようとしている変更を削除する場合は、正常に適用したファイルをシェルフから削除するオプションを選択します。シェルフから外されたファイルはこのシェルフから削除され、別の変更リストに追加され、適用済みとしてマークされます。これらは、ツールバーの をクリックするか、コンテキストメニューからすでにアンシェルブされたものをクリーンを選択して明示的に削除するまで、完全には削除されません。
OK をクリックします。パッチされたバージョンと現在のバージョンの間に競合が発生した場合は、Git の競合を解決する説明に従って解決してください。
変更をアンシェルブダイアログを表示せずに、サイレントに変更をアンシェルブすることもできます。これを行うには、アンシェルブするファイルまたは変更リストを選択し、ツールバーの確認なしでアンシェルブアイコン をクリックするか、Ctrl+Alt+U を押します。アンシェルブされたファイルは、アクティブな保留中の変更リストに移動されます。
ファイルまたは変更リストを「シェルフ」タブから「<ブランチ> にコミットする」タブにドラッグして、サイレントにアンシェルブすることもできます。Ctrl キーを押しながらドラッグすると、ブランチにコミットするタブにコピーされますが、シェルフにも保持されます。
保留された変更を破棄
シェルフビューで、保持したくない変更を含む変更リストを選択します。
変更リストを右クリックし、コンテキストメニューから削除を選択するか、Delete を押します。
保留されていない変更を復元する
PyCharm を使用すると、必要に応じて保留されていない変更を再適用できます。保留されていないすべての変更は、ツールバーの アイコンをクリックするか、コンテキストメニューからすでにアンシェルブされたものをクリーンを選択して明示的に削除するまで、再利用できます。
すでにアンシェルブされたものを表示 ツールバーオプションが有効になっていることを確認してください。
復元するファイルまたはシェルフを選択します。
選択のコンテキストメニューから復元を選択します。
外部パッチを適用する
PyCharm の内部または外部に作成されたパッチをインポートして、保留変更として適用することができます。
シェルフビューで、コンテキストメニューからパッチのインポートを選択します。
表示されたダイアログで、適用するパッチファイルを選択します。選択したパッチがシェルフタブにシェルフとして表示されます。
パッチを適用して新しく追加されたシェルフを選択し、選択したコンテキストメニューから変更をアンシェルブを選択します。
ベースリビジョンの自動シェルフ
Git バージョン管理下にあるファイルの基本リビジョンを常にシェルブするように PyCharm を構成すると便利な場合があります。
Ctrl+Alt+S を押して設定を開き、
を選択します。分散バージョン管理システム下にあるファイルのシェルブベースリビジョンオプションを選択してください。
このオプションが有効になっている場合、シェルフを適用すると競合が発生する場合、ファイルの基本リビジョンが 3 方向マージ(英語)中に使用されるシェルフに保存されます。これが無効になっている場合、PyCharm はプロジェクト履歴で基本リビジョンを検索しますが、これには時間がかかる場合があります。さらに、競合するシェルフのベースとなったリビジョンが欠落している可能性があります (たとえば、リベース操作の結果として履歴が変更された場合)。
デフォルトのシェルフの場所を変更する
デフォルトでは、シェルフディレクトリはプロジェクトディレクトリにあります。ただし、デフォルトのシェルブの位置を変更したい場合があります。これは、たとえば、作業コピーをクリーンアップするときに誤ってシェルフを削除しないようにしたい場合や、シェルフを別のリポジトリに保存してチームメンバー間でシェルフを共有できるようにしたい場合に便利です。
Ctrl+Alt+S を押して設定を開き、
を選択します。シェルブロケーションの変更をクリックし、開いたダイアログで新しい場所を指定します。
必要に応じて、退避済みの変更を新しい場所に移動を選択して、既存のシェルフを新しいディレクトリに移動します。
未完成の作業を失うことなく、別のタスクに切り替えるためのシェルブからの恩恵を受ける方法に関するこのビデオチュートリアルを参照してください。
変更のスタッシュ
場合によっては、作業コピーを HEAD コミットと一致させるために元に戻す必要があるかもしれませんが、すでに行った作業を失いたくない場合があります。これは、作業に関係する可能性のあるアップストリームの変更があることがわかった場合、または緊急の修正が必要な場合に発生する可能性があります。
スタッシュには、HEAD コミットと作業ディレクトリ(スタッシュ)の現在の状態との違いを記録することが含まれます。インデックスへの変更も隠しておくことができます。
スタッシュ解除は、ブランチに格納されたスタッシュを適用することを含みます。
既存のブランチにスタッシュを適用するか、それに基づいて新しいブランチを作成することができます。
スタッシュは、必要なブランチに何度でも適用できます。必要なブランチに切り替えるだけです。それを念頭に置いて:
一連のコミット後にスタッシュを適用すると、解決する必要がある競合が発生します。
コミットされていない変更を含む作業コピーである、「ダーティ」な作業コピーにスタッシュを適用することはできません。
変更をスタッシュに保存する
メインメニューで、
に移動します。開いているスタッシュダイアログで、適切な Git ルートを選択し、正しいブランチがチェックアウトされていることを確認します。
メッセージフィールドには、隠そうとしている変更を記述します。
スタッシュのローカル変更を行い、検査およびテストのためにインデックスにステージングされた変更を作業ツリーに持ち込むには、インデックスを保持するオプションを選択します。
スタッシュの作成をクリックします。
スタッシュを適用する
メインメニューで、
に移動します。スタッシュを適用する Git ルートを選択し、正しいブランチがチェックアウトされていることを確認してください。
リストから適用したいスタッシュを選択します。
選択した stash で影響を受けるファイルを確認するには、表示をクリックします。
選択したスラッシュを適用した後に削除するには、スタッシュを pop オプションを選択します。
スタッシュインデックスの変更を適用するには、インデックスを戻すオプションを選択します。
現在チェックアウトされているブランチに適用するのではなく、選択したスタッシュに基づいて新しいブランチを作成する場合は、そのブランチの名前を新規ブランチとしてフィールドに入力します。
スタッシュを削除するには、リストからスタッシュを選択し、ドロップをクリックします。すべてのスタッシュを削除するには、クリアをクリックします。
関連ページ:
ファイルを Git に追加し、変更を追跡する
Git にファイル追加コミットツールウィンドウを開きます。を押すか、コンテキストメニューから VCS に追加を選択して、バージョン管理外ファイル変更リスト内のファイルをバージョン管理下に置きます。変更リスト全体を追加することも、個別のファイルを選択することもできます。プロジェクトで Git 統合を有効にしている場合、PyCharm は、新しく作成された各ファイルをバージョン管理下に追加することを提案します。この動作は、の設定ダイアログで変更できます。特定のファイルを常にバージョン管理しないよう...
シェルブタブ
このタブでは、ときバージョン管理ツールウィンドウのに追加されシェルブ変更またはチェンジを、永久にすでに unshelved にものも含め、すべてシェルブ変更を削除するまで表示され、外部のパッチをインポートしました。既定では、このタブには未反映の変更がすべて表示されます。変更はシェルブにグループ化されます。シェルフは変更を保存するときに作成される変更リストです。シェルフはコミットメッセージによって識別されます。PyCharm に unshelved の変更を表示させることができます。それらは、永久に...
タスクとコンテキストを管理する
プロジェクトで作業する場合は、完了する必要のある小さな作業で作業を整理できます。これらは、自分で設定したタスクです。PyCharm では、大きな作業を小さなタスクに分割し、変更リストに関連付けることができます。これらは、課題追跡システムからのタスクである可能性もあります。例: PyCharm から直接割り当てられたタスクやバグを処理できます。これを可能にするには、IDE とトラッカーアカウントを接続します。課題追跡との統合を構成する:PyCharm は次のものとの統合をサポートします。Jira...
Git の競合を解決する
チームで作業しているときに、現在作業中のファイルに誰かが変更をプッシュするという状況に遭遇する可能性があります。これらの変更が重複しない場合(つまり、異なるコード行に変更が加えられた場合)、競合するファイルは自動的にマージされます。しかし、同じ行が影響を受けた場合、Git は無作為に一方を他方を選ぶことはできず、衝突を解決するように求めます。Git では、プル、マージ、リベース、チェリーピック、変更のスタッシュ解除、またはパッチの適用のいずれかの操作を実行しようとすると、競合が発生する可能性があ...
Git ブランチの管理
Git では、ブランチは、たとえば機能の作業が必要な場合や、リリースのためにコードベースの特定の状態を固定する必要がある場合などに、メインの開発ラインから分岐できるようにする強力なメカニズムです。PyCharm では、ブランチによるすべての操作は Git ブランチポップアップで実行されます。これを呼び出すには、メインウィンドウのヘッダーで、現在チェックアウトされているブランチの名前を持つ Git ウィジェットをクリックします。Git ツールウィンドウのブランチペインで、ブランチを管理し、複数のブラン...