JavaRush /Java Blog /Random-JA /Git を Intellij IDEA に接続してみよう
Roman Beekeeper
レベル 35

Git を Intellij IDEA に接続してみよう

Random-JA グループに公開済み
伝統通り、将来のシニア ソフトウェア エンジニアの皆さんを歓迎します。 今日は、 GitGit を Intellij IDEA に接続してみよう - 1に関する私の記事の論理的な続きについて話します。以前に公開した分岐戦略に関する資料も読むことをお勧めします。Git に関する記事では、コマンド ラインで Git を操作する方法について説明しましたが、今日は、これらすべてを Intellij IDEA で実行する方法を説明します。開発者としての歩みを始めた当初、私はコマンド ラインを使用していましたが、この件に関して UI を使用する必要はないと考えていました。結局のところ、すべてが明らかです...しかし、それはまさに私が Intellij IDEA で Git を使い始めた瞬間までのことでした...私の個人的な経験について説明することをすぐに言いたいと思います。Intellij IDEA を使用して同じ問題を解決するには、いくつかのオプションがあります。記事で説明したことをより良く行う方法をご存知の場合は、コメントに書き込んでください。話し合います。

必要な導入メモ:

  1. git に関する記事を読んで繰り返し、理解してください。これにより、すべてがすでにセットアップされ、すぐに使用できるようになります。
  2. Intellij IDEA をインストールします。
  3. 完全に吸収するために 1 時間の個人的な時間を確保してください。
仕事として、 git に関する記事で使用した デモ プロジェクトを取り上げてみましょう。アップデート:公開時点では、新しい Github UI はすでに利用可能になっており、一部のアイコンは記事内の表示場所に表示されません。心配しないでください。新しい UI に切り替えないか、新しい UI を探す必要があります。

プロジェクトのクローンをローカルに作成する

ここには 2 つのオプションがあります。
  1. すでに Github アカウントをお持ちで、後で何かをプッシュしたい場合は、プロジェクトを自分にフォークしてコピーを複製することをお勧めします。フォークの作成方法 - この記事の章のフォーク ワークフローの例について説明しました。
  2. リポジトリからクローンを作成し、すべてをサーバーにプッシュすることなく、すべてをローカルで実行します。結局のところ、これは私のリポジトリになります))
Github からプロジェクトのクローンを作成するには、プロジェクトへのリンクをコピーし、それを IntelliJ IDEA に渡す必要があります。
  1. プロジェクトのアドレスをコピーします。

    Git を Intellij IDEA に接続してみよう - 2
  2. Intellij IDEA を開き、バージョン管理から取得を選択します。

    Git を Intellij IDEA に接続してみよう - 3
  3. アドレスをコピーしてプロジェクトに貼り付けます。

    Git を Intellij IDEA に接続してみよう - 4
  4. Intellij IDEA プロジェクトを作成するように求められます。私たちはその申し出を受け入れます:

    Git を Intellij IDEA に接続してみよう - 5
  5. ビルド システムはなく、これは記事の範囲ではないため、 [既存のソースからプロジェクトを作成]を選択します。

    Git を Intellij IDEA に接続してみよう - 6
  6. 次に、次のような油絵が表示されます。 Git を Intellij IDEA に接続してみよう - 7クローン作成を整理しました。今は周りを見てみましょう。

Git UI としての Intellij IDEA を初めて見てみる

クローン化されたプロジェクトをもう一度よく見てください。すでにそこには、バージョン管理システムに関する多くの情報が得られます。1 つ目は、左下隅にあるバージョン コントロールパネルです。その中で、すべてのローカル変更を検索し、コミットのリストを取得できます (git log に似ています)。ログの講義に移りましょう。開発プロセスがどのように進んだかを正確に理解するのに役立つ特定の視覚的なコンポーネントがあります。たとえば、txt にヘッダーを追加したcommit を含む新しいブランチが作成され、それが master ブランチにマージされたことがわかります。コミットをクリックすると、右隅にコミットに関するすべての情報、つまりすべての変更とそのメタデータが表示されます。 Intellij IDEA に Git を接続してみよう - 8さらに、どのような変更が加えられたかを確認できます。さらに、そこで紛争は解決されました。IDEA もこれを完璧に示しています。このコミット中に変更されたファイルをダブルクリックすると、競合がどのように解決されたかがわかります。 Git を Intellij IDEA に接続してみよう - 9右側と左側に、1 つにマージする必要がある同じファイルの 2 つのバージョンがあることがわかります。そして真ん中が最終結果です。プロジェクトに多くのブランチ、コミット、およびプロジェクトで作業するユーザーがある場合、ブランチ (ブランチ)、ユーザー (ユーザー)、および日付 (日付) で個別に検索する必要があります。そして、 Intellij IDEA に Git を接続してみよう - 10開始する前に最後に説明したいのは、どのように理解するかです。私たちがどの支店にいるのか。ちょっと探してみましょう...見つかりましたか? 諦めていますか?:D 右下隅にはボタンGit: masterがあり、Git: の後にはプロジェクトが現在どのブランチにあるかが表示されます。ボタンをクリックすると、別のブランチへの移動、新しいブランチの作成、既存のブランチの名前変更など、さまざまな便利な操作を行うことができます。 Intellij IDEA に Git を接続してみよう - 11

リポジトリの操作

便利なホットキー

作業を続けるには、非常に便利なホットキーをいくつか覚えておく必要があります。
  1. ctrl + t - リモート リポジトリから最新の変更を取得します (git pull)。
  2. Ctrl + K - 現在利用可能なすべての変更をコミット/表示します。これには、追跡されていないファイルと変更されたファイルの両方が含まれます (git に関する私の記事を参照してください。これについてはそこで説明されています) (git commit)。
  3. Ctrl + SHIFT + K は、変更をリモート リポジトリにプッシュするためのコマンドです。ローカルで作成され、リモートにまだ存在していないすべてのコミットは、プッシュ (git Push) に提供されます。
  4. alt + ctrl + z - 特定のファイル内の変更を、ローカル リポジトリ内で最後に作成されたコミットの状態にロールバックします。左上隅でプロジェクト全体を選択すると、すべてのファイルへの変更をロールバックできます。
Intellij IDEA に Git を接続してみよう - 12

私達は何が欲しいのか?

作業するには、どこでも使用される基本的なスクリプトをマスターする必要があります。タスクは、新しい機能を別のブランチに実装し、リモート リポジトリにプッシュすることです (その後、メイン ブランチに対して別のプル リクエストを作成する必要がありますが、これは記事の範囲を超えています)。何をする必要がありますか?
  1. 現在メイン ブランチ (master など) にあるすべての変更を取得します。

  2. このメインのものに基づいて、作業用に別のものを作成します。

  3. 新しい機能を実装します。

  4. メイン ブランチに移動し、作業中に新しい変更があったかどうかを確認します。そうでない場合は、すべてが正常です。正常だった場合は、次の操作を実行します。作業ブランチに移動し、変更をメイン ブランチから私たちのブランチにリベースします。すべてがうまくいけば、素晴らしいことです。しかし、衝突が起こる可能性も十分にあります。また、リモート リポジトリで時間を無駄にすることなく、事前に解決できます。

    なぜこんなことをするのでしょう?これは良い形式のルールであり、ブランチをローカル リポジトリにプッシュした後に競合が発生するのを防ぎます (もちろん、競合がまだ存在する可能性はありますが、競合は大幅に小さくなります)

  5. 変更をリモート リポジトリにプッシュします。
次に何が起こるかはあなたの目標と想像力次第です。

リモートサーバーから変更を受け取りますか?

新しいコミットで README に説明を追加し、これらの変更を受け取りたいと考えています。ローカル リポジトリとリモート リポジトリの両方で変更が行われた場合、マージとリベースのどちらかを選択できます。結合を選択します。Ctrl + tを入力します。 Git を Intellij IDEA に接続してみよう - 13その結果、README がどのように変更されたかを確認できます。リモート リポジトリからの変更が取得され、右下隅にサーバーからの変更の詳細がすべて表示されます。 Intellij IDEA に Git を接続してみよう - 14

マスターに基づいて新しいブランチを作成します

ここではすべてがシンプルです。
  1. 右下隅に移動して[Git: master]をクリックし、[+ New Branch]を選択します。

    Intellij IDEA に Git を接続してみよう - 15
  2. [チェックアウト ブランチ]チェックボックスをそのままにして、新しいブランチの名前を入力します。私の場合はreadme-improverになります。

    Intellij IDEA に Git を接続してみよう - 16

    この後、Git: master はGit: readme-improverに変更されます。

並列作業のシミュレーション

競合が発生するには、誰かが競合を作成する必要があります :D ブラウザを介して新しいコミットで README を編集し、並列作業をシミュレートします。私の作業中に誰かが私と同じファイルに変更を加えたため、競合が発生すると言われています。10行目から「完全に」という言葉を削除させていただきます。

機能を実装する

タスクは、README を変更し、新しい記事に説明を追加することです。つまり、git での作業は Intellij IDEA を通じて行われます。これを追加します: Git を Intellij IDEA に接続してみよう - 17変更が完了したので、コミットを作成できるようになりました。ホットキーctrl + kを押すと、次の結果が得られます。 Intellij IDEA に Git を接続してみよう - 18コミットを作成する前に、このウィンドウで提供される内容を注意深く確認する必要があります。どこを見るべきかを示すために、特に矢印を追加しました。そこには興味深いものがたくさんあります。「コミットメッセージ」セクションにコミットのテキストを記述します。コミットを作成するには、「コミット」ボタンをクリックする必要があります。ホットキーでこれを行う方法がまだ見つかっていないので、誰かがそれを見つけたら、書いてください。とてもうれしいです。README が変更されたことを記述し、コミットを作成します。その結果、左下隅にコミット名を含むアラートがポップアップ表示されます。 Git を Intellij IDEA に接続してみよう - 19

master ブランチが変更されたかどうかを確認する

タスクは完了し、動作し、テストも作成しました。すべて問題ありません。ただし、サーバーにプッシュする前に、この間にメイン ブランチに変更があったかどうかを確認する必要があります。どうしてこんなことが起こるのでしょうか?それは非常に単純です。あなたの後に誰かにタスクが与えられ、そのタスクをあなたよりも早く実行したのです。したがって、master ブランチに移動します。これを行うには、次の図に示すように、右下隅で行う必要があります。 Intellij IDEA に Git を接続してみよう - 20master ブランチで、ctrl + tを押して、リモート サーバーから最新の変更を取得します。どのような変更が加えられたかを見ると、何が起こったのか簡単にわかります。 Git を Intellij IDEA に接続してみよう - 21ご覧のとおり、「完全に」という言葉が削除されています。おそらく、マーケティング部門の誰かがそのようには書けないと判断し、開発者に更新のタスクを与えたのでしょう。これで、最新バージョンの master ブランチがローカルに存在しました。readme-improverに戻りましょう。ここで、変更を master ブランチから私たちのブランチにリベースする必要があります。私たちはそうします: Git を Intellij IDEA に接続してみよう - 22あなたが私の指示に従ってすべてを正しく実行した場合、結果は README ファイルに矛盾が生じるはずです。 Git を Intellij IDEA に接続してみよう - 23ここには理解して吸収する必要のある情報もたくさんあります。これは、競合しているファイルのリスト (この例では 1 つの要素) を表示します。次の 3 つのオプションを選択できます。
  1. あなたのものを受け入れます - readme-improver からの変更のみを受け入れます。
  2. 彼らのものを受け入れる - マスターからの変更のみを受け入れます。
  3. マージ - 何を保持し、何を削除するかを自分で選択します。
そこで何が変更されたのかは明確ではありません。変更がマスターにある場合は、そこで必要になるため、変更をそのまま受け入れることはできないため、マージを選択します。 Git を Intellij IDEA に接続してみよう - 24ここでは、3 つの部分があることがわかります。
  1. これらは readme-improver からの変更です。
  2. 結果。今のところ変更前と同じです。
  3. master ブランチからの変更。
全員が満足できるような結果を収集する必要があります。したがって、私たちは彼らが私たちよりも前に何をしたかを研究し、単に「完全に」という言葉を削除しただけであることに気づきました。まあ、大丈夫、問題ありません。これは、結果としてそれを削除し、変更を追加することを意味します。結果を修正したら、すぐに[適用]をクリックしてください。この後、リベースが成功したことを示す通知がポップアップ表示されます。 Intellij IDEA に Git を接続してみよう - 25これが、Intellij IDEA を通じて最初の競合を解決した方法です :D

変更をリモートサーバーにプッシュする

次のステップでは、変更をリモート サーバーにプッシュし、プル リクエストを作成します。これを行うには、Ctrl + SHIFT + Kを押すだけです。その後、次の結果が表示されます。 Git を Intellij IDEA に接続してみよう - 26左側にはリモート リポジトリにプッシュされていないコミットのリストが表示され、右側にはリモート リポジトリにプッシュされたすべてのファイルが表示されます。かわった。これですべてです: [プッシュ]をクリックすると満足です :) プッシュが成功すると、右下隅に次のような通知が表示されます。 Git を Intellij IDEA に接続してみよう - 27

ボーナスパート

当初はプル リクエストの作成を記事に追加するつもりはありませんでしたが、そのせいで完全ではないことがわかりました。したがって、GitHub リポジトリ (もちろんあなたのものである場合)))) にアクセスし、GitHub が何を提供するかをすでに知っていることを確認します。 [ Compare & pull request]Intellij IDEA に Git を接続してみよう - 28をクリックし、[Create pull request]をクリックします。事前に競合を解決したことにより、プル リクエストを作成するときにすぐにマージできるようになりました。 今回伝えたかったのはこれだけです。もちろん、ドアを開けてほんの一部をお見せしただけです。残りは必要に応じて自分で見つけます。いつものように、私が仕事で使用しているさまざまなテクノロジーに基づいたプロジェクトを投稿している私のGitHub アカウントに登録することをお勧めします。私は最近、個人的な成果を達成しました。私のプロジェクトはすでに 100 人以上の開発者によって評価されています。自分の作ったものが誰かに使われると、この上ない喜びを感じます。そしてそれを良いために使います。 Git を Intellij IDEA に接続してみよう - 29

役立つリンク

  1. JavaRush: Git 入門: 初心者向けの詳細ガイド
  2. GitHub:使用するデモ プロジェクト
  3. JavaRush: Git での分岐戦略の分析
  4. JetBrains: Git リポジトリのセットアップ
  5. Habr: Git リベース
  6. GitHub:私のアカウント
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION