AppCode 2023.1 ヘルプ

Git リポジトリの変更を調査する

AppCode では、プロジェクト内のすべての変更を追跡できます。これにより、変更の作成者を特定しファイルバージョンまたはコミット間の違いを確認し、必要に応じて変更を安全にロールバックして元に戻すことができます。

プロジェクト履歴を確認する

指定したフィルターに一致するプロジェクトソースに加えられたすべての変更を確認できます。プロジェクト履歴を表示するには、Git ツールウィンドウ Alt+9ログタブを開きます。すべてのブランチおよびリモートリポジトリにコミットされたすべての変更が表示されます。

log view

マルチリポジトリプロジェクトでは、左側の色付きのストライプは、選択したコミットが属するルートを示します(各ルートは独自の色でマークされています)。カラーストライプの上にマウスカーソルを置くと、ルートパスを示すヒントが表示されます。

root path
  • 完全なコミット名やメッセージ、そのフラグメント、リビジョン番号、正規表現を入力して、コミットのリストを検索します。

  • ブランチまたはお気に入りのブランチ、ユーザー、日付、フォルダー(またはマルチルートプロジェクトの場合はルートとフォルダー)でコミットをフィルタリングします。

  • ツールバーのハッシュ / ブランチ / タグへジャンプ go to アイコンをクリックするか、Ctrl+F を押して、移動するコミットハッシュ、タグ、またはブランチの名前を指定します(そのブランチの最新のコミットに移動します)。

  • 長いブランチで次のコミットに移動するには、矢印をクリックします。

    jump to next commit
  • Left および Right キーを押して、親 / 子コミットに移動します。これは、Git ツールウィンドウ Alt+9ログタブに異なるリポジトリと複数のブランチがすべて混在している場合に特に便利です。

Git ツールウィンドウ Alt+9ログタブの詳細については、ログタブを参照してください。

特定のリビジョンでプロジェクトのスナップショットを確認する

AppCode では、選択したリビジョンのプロジェクトの状態を確認できます。

  1. Git ツールウィンドウ Alt+9 を開き、ログタブに切り替えます。

  2. コミットを選択し、コンテキストメニューからリビジョンでリポジトリを表示を選択します。

選択したリビジョンのプロジェクトのスナップショットを含むリポジトリツールウィンドウが開きます。

2 つのコミットの違いを確認する

AppCode を使用すると、2 つのコミット間で変更されたファイルを確認できます。その間、各コミットの変更を参照する必要はありません。

  • Git ツールウィンドウ Alt+9ログタブで任意の 2 つのコミットを選択し、コンテキストメニューからバージョンの比較を選択します。

    選択したコミット間で変更されたファイルのリストが表示された変更ツールウィンドウが開きます。the Show diff icon をクリックするか、Ctrl+D を押すと、任意のファイルの差分を表示できます。

ファイル履歴を確認する

特定のファイルに加えられたすべての変更を確認し、各リビジョンで正確に変更されたものを見つけることができます。

  1. 任意のビュー(プロジェクトツールウィンドウ、エディター、ローカルの変更ビューなど)で必要なファイルを選択します。

  2. メインの VCS メニューまたは選択項目のコンテキストメニューから Git | 履歴の表示を選択します。ヒストリータブが Git ツールウィンドウに追加され、選択したファイルの履歴が表示され、そのリビジョンを確認して比較することができます。

  3. 特定のリビジョンでどの変更が導入されたかを特定するには、リストで選択します。パネルの右側に、差分が即座に表示されます。

  4. 専用の差分ビューアーでファイル全体の差分を表示するには、リストでその差分を選択して Ctrl+D を押すか、ツールバーの show diff ボタンをクリックします。差分ビューアーが開き、このリビジョンで変更された内容が表示されます。

ディレクトリの履歴を確認する

プロジェクト全体または特定のファイルの履歴を確認することに加えて、特定のフォルダーで行われた変更を確認できます。

  1. プロジェクトツールウィンドウで 1 つまたは複数のディレクトリを選択し、コンテキストメニューから Git | 履歴の表示を選択します。

  2. 新しいタブが Git ツールウィンドウ Alt+9 に追加され、選択したフォルダーによってフィルターされたコミットが表示されます。

ローカルファイルバージョンとコミットされたファイルバージョンの違いを確認する

コミットされたファイルリビジョンがローカルバージョンとどのように異なるかを確認することができます:

  1. Git ツールウィンドウ Alt+9 を開き、ログタブに切り替えます。

  2. 関心のあるコミットを選択し、右側のペインでファイルを選択します。

  3. ツールバーの show diff ボタンをクリックします。

変更がどのようにマージされたかを確認する

AppCode を使用すると、あるブランチから別のブランチに変更がマージされた方法、およびマージ中に競合(存在する場合)が正確に解決された方法を確認できます。

  • Git ツールウィンドウ Alt+9ログタブで、目的のマージコミットを選択します。

    • マージ中に競合が検出および解決されなかった場合、AppCode は変更されたファイルペインに対応するメッセージを表示し、両方の親から発生した変更の確認を提案します。

      changes from parents

      いずれかのノードから必要なファイルを選択し、ツールバーの差分の表示 show diff アイコンをクリックするか、Ctrl+D を押します。差分ビューアーには、現在のバージョンと選択した親との比較を可能にする 2 パネル差分が表示されます。

    • マージ中に競合が発生した場合、変更されたファイルペインには競合によってマージされたファイルの一覧が表示されます。

      必要なファイルを選択し、ツールバーの差分の表示 show diff アイコンをクリックするか、Ctrl+D を押します。差分ビューアーには、3 つのパネルの差分が表示され、現在のバージョンとその両親を比較し、競合がどのように解決されたかを確認できます。

コード作成者の特定 (Git Blame でアノテーションを付ける)

VCS アノテーションgit-blame(英語) に対応)を使用すると、誰がファイルにどの変更を導入したかを把握できます。アノテーション付きのビューには、コードの各行の詳細情報が表示されます。

annotate

現在のリビジョンで変更された行のアノテーションは、太字とアスタリスクでマークされています。

デフォルトでは、さまざまなコミットがさまざまな色でハイライトされます(アノテーションに表示される情報量を設定するを参照)。

アノテーションビューから、次の場所に移動できます。

  • Git ツールウィンドウ Alt+9ログタブの対応するコミット: アノテーションをクリックするか、カーソルをその上に置いて、ポップアップのコミットハッシュをクリックして詳細情報を表示します。

    Popup with detailed information about commit
  • 行の違い: カーソルをアノテーションの上に置きます。IDE は、対応するコミットからの行と変更をハイライトします。

    Difference in lines
  • https://github.com(英語) の対応するコミット: GitHub で開くコンテキストメニューオプションを使用します。

  • 問題ナビゲーションが有効になっている場合のバグ追跡システムの関連する問題: アノテーションの上にカーソルを置き、コミットメッセージに含まれている場合は問題のリンクをクリックします

アノテーションを有効にする

  • エディターまたは差分ビューアーでガターを右クリックし、コンテキストメニューから Git Blame でアノテーションを付けるを選択します。

    アノテーションコマンドにカスタムショートカットを割り当てることができます。IDE 設定 Ctrl+Alt+Sキーマップページに移動し、バージョン管理システム | Git | アノテーションを探します。

アノテーションに表示される情報量を設定する

アノテーションビューに表示する情報量を選択できます。

  • アノテーションガターを右クリックして表示を選択し、この変更の起点となった改訂、日付、さまざまな形式の作者の名前、コミット番号など、表示したい情報の種類を選択します。

    でハイライトを設定することもできます。

アノテーションオプションを設定する

  • アノテーションガターを右クリックして、コンテキストメニューからオプションを選択します。

    • 空白を無視 : 空白文字は無視されます(git blame -w)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。

    • ファイル内の移動を検出 : コミットが同じファイル内で行を移動またはコピーするとき、そのような変更は無視されます(git blame -M)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。

    • ファイル間の移動を検出 : コミットが同じコミットで変更された他のファイルから行を移動またはコピーするとき、そのような変更は無視されます(git blame -C)。これは、アノテーションが以前の意味のあるコミットを指すことを意味します。

    • コミットのタイムスタンプを表示 : 変更が作成された時刻ではなく、アノテーションビューで AppCode にコミットタイムスタンプを表示する場合は、このオプションを選択します。

日付形式をカスタマイズする

  1. Ctrl+Alt+S を押して IDE 設定を開き、外観 & 振る舞い | システム設定 | 日付形式を選択します。

  2. VCS アノテーションの横にある日時パターンフィールドをクリックし、VCS アノテーションに使用する日付形式を指定します。パターンリファレンスを参照してください(英語)

変更の作成者を非表示にする

エディターでコード作成者の名前を非表示にするには、次のいずれかを実行します。

  • IDE 設定 Ctrl+Alt+Sエディター | インレイヒント | コードビジョンページを開き、コード作成者オプションを無効にします。

  • エディターで作成者名のヒントを右クリックし、コードビジョンを非表示: コード作成者のインレイヒントを選択します。

以前のリビジョンにアノテーションを付ける

AppCode では、現在のファイルリビジョンだけでなく、以前のリビジョンにアノテーションを付けることができます。アノテーションガターのコンテキストメニューから、次のオプションを選択できます。

  • リビジョンにアノテーションを追加 : このオプションは、特定の変更がコミットされた後にファイルがどのように見えるかを確認する場合に便利です。

  • 以前のリビジョンにアノテーションを追加 : このオプションは、特定の行の最後の変更が無意味である場合、たとえば、変更されたのがコードのフォーマットだけである場合に役立ちます。この場合、ファイルの以前のリビジョンがどのようになっていたかを確認できます。

  • リビジョンを非表示 : このオプションは、無関係な変更や管理上の変更が表示されないようにするために役立ちます。これらは通常、低レベルの移行またはフォーマットアクションによって導入されます。これらの変更がルート全体に影響を与えると、「アノテーション」に多くの混乱が生じます。ダイアログなど、ビューと「アノテーション」列から変更を除外することが望ましい場合があります。「リビジョンを非表示」アクションを使用すると、アノテーション結果からリビジョンをインプレースで除外し、エディターとガターの両方に結果を表示できます。除外されたリビジョンは、反対のアクション「非表示のリビジョンを復元」で復元できます。非表示のリビジョンに関する情報は、エディター上部の通知パネルに表示されます。通知パネルの対応するリンクをクリックして、非表示のリビジョンを復元することもできます。

また、ヒストリービューから特定のファイルにアノテーションを付けることもできます。ヒストリータブで、レビューするファイルのバージョンを選択し、対応する行を右クリックし、コンテキストメニューからアノテーションを選択します。

アノテーションを使用する利点の詳細については、この動画を参照してください。

関連ページ:

Git リポジトリの変更を元に戻す

コミットされていない変更を元に戻すコミットする前に、ローカルで行った変更をいつでも元に戻すことができます。コミットツールウィンドウで、元に戻すファイルを 1 つ以上選択し、コンテキストメニューからロールバックを選択するか、を押します。最後のコミット以降に選択したファイルに加えられたすべての変更は破棄され、アクティブな変更リストから消えます。ファイルのステージングを解除するデフォルトでは、AppCode は、変更されたファイルが自動的にステージングされる変更リストの概念を使用します。ファイルが...

タグを使用して特定の Git コミットをマークする

Git を使用すると、コミットにタグを付けて、プロジェクト履歴の特定のポイントをマークし、将来参照できるようにすることができます。例: リリーススナップショットをキャプチャーするためにブランチを作成する代わりに、リリースバージョンに対応するコミットにタグを付けることができます。コミットにタグを割り当てる Git ツールウィンドウを開き、ログタブに切り替えます。目的のコミットを見つけて右クリックし、コンテキストメニューから新規タグを選択します。新しいタグの名前を入力し、OK をクリックします。タグは、...

Git ブランチから別の Git へ変更を適用する

Git では、あるブランチから別のブランチへの変更を統合するいくつかの方法があります。ブランチのマージ、ブランチのリベース、ブランチから別のブランチに別々のコミットを適用する (チェリーピック)、コミットから個別の変更を適用する、特定のファイルをブランチに適用する、ブランチのマージ:特定のタスクで機能する機能ブランチを作成し、機能を完了してテストした後、作業の結果をメインコードベースに統合するとします。これを行う最も一般的な方法は、ブランチをマスターにマージすることです。機能ブランチで作業をし...

Git の競合を解決する

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

Git ブランチの管理

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