Git リポジトリに変更をコミットしてプッシュする。
Git リポジトリに新しいファイルを追加するか、すでに Git バージョン管理下にあるファイルを変更し、現在の状態に満足したら、作業の結果を共有できます。 これには、ローカルに コミットしてリポジトリのスナップショットをプロジェクトまたはディレクトリ履歴に記録し、次にリモートリポジトリに プッシュして他のユーザーが使用できるようにすることが含まれます。
Git ユーザー名を設定する
Git は、コミットを ID に関連付けるために、ユーザー名を知っている必要があります。 ユーザー名を設定していない場合、DataGrip は最初に変更をコミットしようとした際に、ユーザー名の指定を求めます。
ターミナルを開き、次のいずれかのコマンドを実行します:
マシン上のすべての Git リポジトリに名前を設定するには、
$ git config --global user.name "John Smith"を使用します単一のリポジトリの名前を設定するには、
$ git config user.name "John Smith"を使用します
変更をローカルでコミットする
コミット ツールウィンドウ(Alt+0 )を開きます。

変更をコミットする準備ができたら、対応するファイルまたは変更リスト全体を選択します。
Ctrl+K を押すと、アクティブな変更リスト全体が選択されます。
バージョン管理外ファイル ノード以下のファイルも選択できます。DataGrip はこれらのファイルを 1 ステップでステージングしてコミットします。
新しいローカルコミットを作成するのではなく、 既存のローカルコミットにローカルの変更を追加する場合は、 修正 を選択し、
をクリックして変更するコミットを選択します。
コミットメッセージを入力します。
をクリックして、最近のコミットメッセージのリストから選択できます。
コミットメッセージを編集するのは、コミットをプッシュする前であれば後でも可能です。
コミットチェックを実行したり、コミット後にファイルをサーバーにアップロードしたり、詳細オプションを使用してコミットしたりする必要がある場合は、右下隅の
をクリックするか、 Ctrl+O を押します。

次のオプションを使用できます:
作成者: 他の人による変更をコミットしている場合は、これらの変更の作成者を指定できます。
Sign-off コミット: チェックインしようとしている変更が自分によって行われたことを証明するため、またはコミットするコードに対する責任を負うことを証明するためにコミットをサインオフする場合に選択します。
このオプションを有効にすると、コミットメッセージの末尾に次の行が自動的に追加されます: Signed off by: <username>
コミットチェック 領域で、選択したファイルをローカルリポジトリにコミットする前に DataGrip で実行するアクションを選択します。
次のオプションを使用できます:
コードの整形: プロジェクトコードのスタイル設定に従ってコードフォーマットを実行します。
クリーンアップ: コードクリーンアップインスペクションからのクイックフィックスをバッチ適用します。 プロファイルを選択する をクリックして、IDE がインスペクションを実行 するプロファイルを選択します。
高度なコミットチェック エリアでは、次のオプションが利用できます。
コミット完了後に高度なチェックを実行する: このオプションを有効にすると、コミットが完了した 後に 、選択した高度なコミットチェックが実行されます。
このオプションを有効にすると、高度なコミットチェックの一部が失敗した場合でも、変更はコミットされます。
コードの解析: それらをコミットしながら変更されたファイルを分析します。 プロファイルを選択する をクリックして、IDE がインスペクションを実行する インスペクションプロファイル を選択します。
TODO を確認する: 指定されたフィルターに一致する TODO アイテムを確認します。 構成 をクリックして 既存の TODO フィルターを選択するか、 TODO 設定ページを開いて適用する新しいフィルターを定義します。
実行構成: コミットチェックとしてテストを実行します。 実行構成 の近くにある 構成の選択 をクリックし、実行する構成を選択します。
準備ができたら、 コミット または コミットとプッシュ (Ctrl+Alt+K )をクリックして、コミットの直後に変更をリモートリポジトリにプッシュします。 リモートにプッシュされる前に、現在のコミットと他のすべてのコミットを確認できます。
ファイルの一部をコミットする
特定のタスクに関連する変更を加えると、同じファイルに影響を与える他の無関係なコード変更も適用される場合があります。 このような変更をすべて 1 つのコミットに含めることは、確認、 リバート、 チェリーピックなどを行うのが困難になるため、適切なオプションではない場合があります。
DataGrip では、このような変更を次のいずれかの方法で個別にコミットできます:
変更のコミット ダイアログで、コミットに含める 変更されたコードチャンクと行を選択し 、後でコミットできるように他の変更を保留のままにしておきます。
さまざまなコードチャンクを異なる変更リストにその場で入れ 、コードを編集しているときに、それらの変更リストを個別にコミットします。
コミットしたいチャンクと特定の行を選択する
コミット ツールウィンドウ(Alt+0 )を開きます。
選択したファイルのリポジトリバージョンとローカルバージョンの違いを表示するには、 コミット ツールウィンドウ (Alt+0) で、ツールバーの
をクリックするか、 Ctrl+D を押します。
コミットしたい変更済みまたは新しく追加したコードの各チャンク横のチェックボックスを選択し、それ以外の変更は選択したままにしないでおきます:

チャンクから特定の行のみをコミットする場合は、含める行を右クリックし、 チャンクを分割して選択した行をコミットに含める を選択します。

または、ガター上にカーソルを合わせ、コミットに含めたい行または除外したい行の横にあるチェックボックスを選択または解除します。
コミット をクリックしてください。 選択されていない変更は現在の変更リストに残るため、別々にコミットすることができます。
エディターから選択した変更をコミットする
すでに変更をコミットした後で何かを忘れていたことに気付いた場合は、エディターから直接更新をすぐにコミットできます。
エディターでファイルを変更するときは、ガターで対応する 変更マーカーをクリックします。
表示されるツールバーにコミットメッセージを入力し、
この変更をコミット をクリックします。

コミットメッセージフィールドで
修正 をクリックすると、ローカルの変更が最新のコミットに追加されます。
変更を異なる変更リストに入れる
エディターでファイルを変更するときは、ガターで対応する 変更マーカーをクリックします。
表示されたツールバーで、変更されたコードチャンクのターゲット変更リストを選択するか、新しい変更リストを作成します:

各変更リストを別々にコミットします。
ローカルの変更を確認する方法をカスタマイズする
DataGrip には、コミット前にローカル変更をレビューするワークフローをカスタマイズするさまざまな設定があります。
コミットツールウィンドウをカスタマイズする
コミット ツールウィンドウ(Alt+0 )の位置と動作は、推奨するワークフローに合わせて変更できます。
コミットインターフェースは、ダイアログのように見える別のウィンドウとして開くことができますが、非ブロッキング (または非モーダル) のままです。
コミット ツールウィンドウ(Alt+0 )で、
オプション をクリックし、 を選択します。 ウィンドウを常に IDE の前面に表示するには、 を選択します。
コミット ツールウィンドウを、ローカル変更のリストを含むウィンドウとして機能するように設定し、変更をコミットする準備ができたらコミットコントロールをオンにすることができます (
、 コミット、 Ctrl+K を使用)。で、 コミットのコントロールを切り替える チェックボックスを選択します。
コミット ツールウィンドウは、 Git(ギット) ツールウィンドウ Alt+9 の ログ タブ内の ローカルの変更 タブになることができます。
で、 コミットツールウィンドウを有効にする チェックボックスをオフにします。
差分ビューアーの動作をカスタマイズする
コミット ツールウィンドウ(Alt+0 )には、変更されたファイルのリストが表示されます。 変更されたファイルをダブルクリックすると、差分ビューアーまたはソースファイルが開きます。
オプション をクリックし、 ダブルクリックで表示 を選択してから、希望するオプションを選択します。
Diff を選択すると、変更されたファイルをダブルクリックしたときに常に差分ビューアーが開き、変更内容を確認できます。
ソース は、編集できるように常にファイル自体を開きます。
次のいずれかの設定を使用して、差分ビューアーをエディターまたは別のウィンドウで開くように設定することもできます。
差分ビューアーで、ツールバーの
設定 をクリックし、 別ウィンドウで差分を表示 を選択します。
で、 エディタータブで差分を開く チェックボックスをオフにします。
Git ステージングエリアを使用して変更をコミットする
変更されたファイルが自動的にステージングされる 変更リストを使用するのではなく、コミットのために変更を ステージングする(英語)という概念に慣れている場合は、 Ctrl+Alt+S を押して設定を開き、 バージョン管理 | Git を選択してから、 ステージングエリアを有効化 チェックボックスを選択します。

ステージングエリアを使用すると、同じファイルへの変更(重複する変更も含む)を簡単に個別にコミットでき、エディターからフォーカスを外すことなく、どの変更がすでにステージングされているかを確認できます。
コミットのステージ変更
次のいずれかを実行します:
ファイル全体をステージングするには、 コミット ツールウィンドウ (Alt+0) でこのファイルを選択し、その右側にある
をクリックするか、 Ctrl+Alt+A を押します。

ファイル内の特定のチャンクをステージングするには、エディターで変更されたチャンクの隣のガターにある 変更マーカー をクリックし、 ステージ をクリックします。

ステージングされた変更(DataGrip の外部でステージングされたものも含む)は、エディターで白抜きの変更マーカーで示されます:

コードチャンクではなく 1 行などの細かな変更、あるいは 1 行に対する複数の変更をステージングするには、 コミット ツールウィンドウ(Alt+0 )で、変更を含むファイルを選択し、コンテキストメニューから HEAD、ステージ済み、ローカルバージョンの比較 を選択します。
これにより、左ペインにはリポジトリバージョン、右ペインにはローカルバージョン、中央ペインはステージしたい変更を行える完全な編集機能付きエディターが表示される三方向 差分ビューアーが開きます。

準備ができたら、 変更をローカルでコミットする説明に従って変更をコミットします。
変更をリモートリポジトリにプッシュする
変更をプッシュする前に、 リモートと同期し、競合を回避するためリポジトリのローカルコピーが最新であることを確認してください。
DataGrip を使うと、任意のブランチから 追跡対象のブランチまたは他のいずれかのリモートブランチへ変更をアップロードできます。
次のいずれかを実行します:
現在のブランチから変更をプッシュするには、 Ctrl+Shift+K を押すか、メインメニューから を選択します。
リモートを持つローカルのブランチから変更をプッシュするには、VCS ウィジェットでこのブランチを選択し、アクションのリストから プッシュ を選択します。
コミットをいくつか行ったが、まだリモートブランチにプッシュしたくない場合は、 Git(ギット) ツールウィンドウ (Alt+9) の ログ タブで、プッシュする最後のコミットを選択し、アクションリストから ここまでのすべてをプッシュ… オプションを選択します。
コミットのプッシュダイアログ が開き、すべての Git リポジトリ(マルチリポジトリプロジェクトの場合)が表示され、最後のプッシュ以降に各リポジトリの現在のブランチで行われたすべてのコミットが一覧表示されます。

ここまでのすべてをプッシュ… オプションを選択した場合は、選択したコミットハッシュまでのすべてのコミットのリストが表示されます。
同期的に制御されていない複数のリポジトリを使用するプロジェクトがある場合、デフォルトでは現在のリポジトリのみが選択されます (同期リポジトリ制御の有効化の詳細については、 バージョン管理設定: Git を参照してください)。
リポジトリにリモートがない場合は、 リモートの定義 リンクが表示されます。 このリンクをクリックして、表示されるダイアログでリモートの名前と URL を指定します。 これは保存され、後で から編集できます(詳細は リモートリポジトリを追加する を参照してください)。
プッシュ先のターゲットブランチを変更したい場合は、ブランチ名をクリックします。 ラベルがテキストフィールドに変わり、そこで既存のブランチ名を入力するか、新しいブランチを作成できます。 右下隅にある すべてのターゲットを編集 リンクをクリックして、すべてのブランチ名を同時に編集することもできます。
ローカルのブランチを変更することはできません。選択された各リポジトリの現在のブランチがプッシュされます。
変更をプッシュする前にプレビューしたい場合は、必要なコミットを選択してください。 右側のペインには、選択したコミットに含まれている変更が表示されます。 ツールバーのボタンを使ってコミットの詳細を調べることができます。
コミットの作成者が現在のユーザーと異なる場合、このコミットはアスタリスクでマークされています。
コミット時にタグをプッシュするには、 タグのプッシュ チェックボックスを選択します。
デフォルトでは、このチェックボックスを選択しない限り、
プッシュ操作を実行すると、タグはリモートリポジトリに送信されません。選択したブランチに属していないタグ(
git push --tagsに相当)を含む、すべてのタグをプッシュしたい場合は、 すべて を選択します。選択しようとしている選択したブランチに属するタグだけをプッシュしたい場合は、 現在のブランチ を選択します(Git 1.8.3 以降で利用可能な
git push --follow-tagsに相当)。
準備ができたら プッシュ ボタンをクリックし、ドロップダウンメニューから実行する操作を選択します: プッシュ または 強制プッシュ (
git push --force-with-leaseと同等)。これらの選択肢は、現在のブランチが 保護されたブランチ フィールドにリストされていない場合にのみ利用できます(バージョン管理設定: Git を参照)。それ以外の場合は、
プッシュ操作のみを実行できます。
プッシュが拒否された場合、作業コピーを更新する
作業コピーが古く プッシュ が拒否された場合、 設定 ダイアログの Git 設定ページで 現在のブランチのプッシュが拒否された場合に自動更新する オプションが未選択の場合は、DataGrip が プッシュが拒否されました ダイアログを表示します。 以下を実施してください:
プロジェクトで複数の Git リポジトリを使用している場合は、それらのうちどれを更新するかを指定します。 プッシュ が拒否されたかどうかに関係なく、すべてのリポジトリを更新する場合は、 すべてのリポジトリを更新する オプションを選択します。 このオプションをオフにすると、影響を受けるリポジトリのみが更新されます。
次回プッシュがこのダイアログで選んだ更新方法で拒否された際、DataGrip に更新手続きをサイレントで適用させたい場合は、 更新方法の選択を記憶し、今後確認なしで更新する オプションを選択します。
このダイアログを終了すると、 設定 ダイアログの Git 設定ページにある 現在のブランチのプッシュが拒否された場合に自動更新する チェックボックスが選択され、適用された更新方法がデフォルトの方法になります。
更新方法を変更するには、このオプションの選択を解除して、現在のブランチのプッシュが次に拒否されたときに プッシュが拒否されました ダイアログを呼び出し、別の更新手順を適用して、もう一度 更新方法の選択を記憶する オプションを選択します。
それぞれ リベース または マージします ボタンをクリックして更新方法を選択します。
強制プッシュを使用する必要があるのはいつですか?
プッシュ を実行すると、リモートリポジトリに欠落している変更があり、リポジトリのローカルコピーで上書きする場合、Git は操作の補完を拒否します。 通常、変更で更新する前に、 プルを実行してリモートと同期する必要があります。
git push --force コマンドはこのチェックを無効にし、リモートリポジトリを上書きすることでその履歴を消去し、データを失うことを可能にします。 フォースプッシュを選択すると、DataGrip は git push --force-with-lease 操作を実行します。これは他のユーザーのコミットを上書きしないための安全な方法です(詳細は git push を参照してください)。
git push --force を実行する必要がある場合は、プッシュされたブランチをリベースしてからリモートサーバーにプッシュしたい場合があります。 この場合、プッシュしようとすると、リモート参照はローカル参照の祖先ではないため、Git は変更を拒否します。 このような状況で プル を実行すると、2 つのブランチのコピーが作成され、次にブランチをマージする必要があります。