CodeGym /Java Blog /ランダム /天国のような組み合わせ: Git と IntelliJ IDEA
John Squirrels
レベル 41
San Francisco

天国のような組み合わせ: Git と IntelliJ IDEA

ランダム グループに公開済み
確立された伝統に忠実であり、将来の上級ソフトウェア エンジニアとして皆さんを歓迎します。 天国のような組み合わせ: Git と IntelliJ IDEA - 1今日の記事は、Git に関する私の記事を論理的に拡張したものです。Git に関する記事では、コマンド ラインで Git を操作する方法について説明しました。今日は、IntelliJ IDEA ですべてを行う方法を説明します。開発者としての歩みを始めた当初、私はコマンド ラインを使用していましたが、これには GUI は必要ないと考えていました。結局のところ、すべてがありのままに明確でした...しかし、それは私が 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 の概要

クローンされたプロジェクトを詳しく見てみましょう。バージョン管理システムに関する多くの情報がすでに得られています。まず、左下隅にバージョン管理ペインがあります。ここでは、すべてのローカル変更を検索し、コミットのリストを取得できます (「git log」に似ています)。Logの説明に移りましょう。開発がどのように進行したかを正確に理解するのに役立つ特定の視覚化があります。たとえば、 txt commit にヘッダーが追加された新しいブランチが作成され、それが master ブランチにマージされたことがわかります。コミットをクリックすると、右隅にコミットに関するすべての情報 (すべての変更とメタデータ) が表示されます。天国のような組み合わせ: Git と IntelliJ IDEA - 8さらに、実際の変化も確認できます。また、そこで競合が解決されたこともわかります。IDEA もこれを非常によく示しています。このコミット中に変更されたファイルをダブルクリックすると、競合がどのように解決されたかがわかります。天国のような組み合わせ: Git と IntelliJ IDEA - 9左側と右側に、1 つにマージする必要がある同じファイルの 2 つのバージョンがあることがわかります。そして真ん中には、最終的なマージ結果があります。プロジェクトに多くのブランチ、コミット、ユーザーがある場合は、ブランチ、ユーザー、日付ごとに個別に検索する必要があります。天国のような組み合わせ: Git と IntelliJ IDEA - 10始める前に最後に説明したいのは、どのブランチにいるのかを理解する方法です。ちょっと待ってください...見つけられましたか? あきらめる?:D 右下隅に、「Git: マスター」というラベルのボタンがあります。。「Git:」に続くものはすべて現在のブランチです。ボタンをクリックすると、別のブランチへの切り替え、新しいブランチの作成、既存のブランチの名前変更など、さまざまな便利な操作を行うことができます。天国のような組み合わせ: Git と IntelliJ IDEA - 11

リポジトリの操作

便利なホットキー

今後の作業のために、非常に便利なホットキーをいくつか覚えておく必要があります。
  1. CTRL+T — リモート リポジトリから最新の変更を取得します (git pull)。
  2. CTRL+K — コミットを作成/現在の変更をすべて表示します。これには、追跡されていないファイルと変更されたファイルの両方が含まれます (これについては、git に関する私の記事を参照してください) (git commit)。
  3. CTRL+SHIFT+K — これは、変更をリモート リポジトリにプッシュするためのコマンドです。ローカルで作成され、リモート リポジトリにまだ存在していないすべてのコミットがプッシュされます (git Push)。
  4. ALT+CTRL+Z — 特定のファイル内の変更を、ローカル リポジトリに作成された最後のコミットの状態にロールバックします。左上隅でプロジェクト全体を選択すると、すべてのファイルの変更をロールバックできます。
天国のような組み合わせ: Git と IntelliJ IDEA - 12

私達は何が欲しいのか?

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

  2. このメイン ブランチから、作業用に別のブランチを作成します。

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

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

    なぜこれを行う必要があるのか​​疑問に思いますか? これは良いマナーであり、ブランチをローカル リポジトリにプッシュした後に競合が発生するのを防ぎます (もちろん、依然として競合が発生する可能性はありますが、競合は大幅に小さくなります)

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

リモートサーバーから変更を取得しますか?

新しいコミットで README に説明を追加し、これらの変更を取得したいと考えています。ローカル リポジトリとリモート リポジトリの両方で変更が行われた場合は、マージかリベースのどちらかを選択するよう求められます。私たちは合併することを選択します。 CTRL+T を入力します天国のような組み合わせ: Git と IntelliJ IDEA - 13これで、README がどのように変更されたかがわかります。つまり、リモート リポジトリからの変更が取り込まれ、右下隅にサーバーからの変更の詳細がすべて表示されます。天国のような組み合わせ: Git と IntelliJ IDEA - 14

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

ここではすべてがシンプルです。
  1. 右下隅に移動して、「Git: master」をクリックします。[+ 新しいブランチ]を選択します。

    天国のような組み合わせ: Git と IntelliJ IDEA - 15
  2. [チェックアウト ブランチ]チェックボックスを選択したままにし、新しいブランチの名前を入力します。私の場合は、 readme-improverになります。

    天国のような組み合わせ: Git と IntelliJ IDEA - 16

    Git: master はGit: readme-improverに変更されます。

並行作業をシミュレーションしてみよう

競合が発生するには、誰かが競合を作成する必要があります:D ブラウザーを介して新しいコミットで README を編集し、並行作業をシミュレートします。私が作業している間に誰かが同じファイルに変更を加えたかのようです。その結果、衝突が起こることになります。10行目から「fully」という単語を削除します。

機能を実装する

私たちのタスクは、README を変更し、新しい記事に説明を追加することです。つまり、Git での作業は IntelliJ IDEA を経由します。これを追加します:天国のような組み合わせ: Git と IntelliJ IDEA - 17変更は完了しました。これでコミットを作成できるようになりました。CTRL+Kを押すと、次のようになります。天国のような組み合わせ: Git と IntelliJ IDEA - 18コミットを作成する前に、このウィンドウが提供するものを詳しく見る必要があります。どこを見るべきかを示すために赤い矢印を追加しました。ここには興味深いものがたくさんあります。「コミットメッセージ」セクションでは、コミットに関連付けられたテキストを記述します。次に、それを作成するには、 「コミット」をクリックする必要があります。ホットキーでこれを行う方法がまだわかりません。誰かがその方法を見つけたら、私に手紙を書いてください。それは私にとってとても嬉しいことです。README が変更されたことを記述し、コミットを作成します。左下隅にコミット名を示すアラートがポップアップ表示されます。天国のような組み合わせ: Git と IntelliJ IDEA - 19

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

私たちは任務を完了しました。できます。私たちはテストを書きました。すべて順調。ただし、サーバーにプッシュする前に、その間にメイン ブランチに変更があったかどうかを確認する必要があります。どうしてそんなことが起こるのでしょうか?非常に簡単に、誰かがあなたの後にタスクを受け取り、その誰かがあなたのタスクを完了するよりも早くタスクを完了します。したがって、master ブランチに移動する必要があります。これを行うには、以下のスクリーンショットの右下隅に示されている操作を行う必要があります。master天国のような組み合わせ: Git と IntelliJ IDEA - 20ブランチで、CTRL+Tを押して、リモート サーバーから最新の変更を取得します。変更内容を見ると、何が起こったのかが簡単にわかります。天国のような組み合わせ: Git と IntelliJ IDEA - 21「fully」という単語が削除されました。おそらくマーケティング部門の誰かがそのように書くべきではないと判断し、開発者にそれを更新するタスクを与えたのでしょう。これで、master ブランチの最新バージョンのローカル コピーが作成されました。readme-improverに戻ります。ここで、変更を master ブランチから私たちのブランチにリベースする必要があります。私たちはこれを行います:天国のような組み合わせ: Git と IntelliJ IDEA - 22すべてを正しく実行し、私に従っていた場合、結果は README ファイルに矛盾を示すはずです:天国のような組み合わせ: Git と IntelliJ IDEA - 23ここには、理解して吸収する必要のある情報もたくさんあります。ここに示されているのは、競合しているファイル (この例では 1 つのファイル) のリストです。次の 3 つのオプションから選択できます。
  1. あなたのものを受け入れる — readme-improver からの変更のみを受け入れます。
  2. 彼らのものを受け入れる — マスターからの変更のみを受け入れます。
  3. マージ — 何を残し、何を破棄するかを自分で選択します。
何が変わったのかは不明です。master ブランチに変更がある場合は、そこに変更が必要になるため、単純に変更を受け入れることはできません。したがって、mergeを選択します。天国のような組み合わせ: Git と IntelliJ IDEA - 24ここでは、3 つの部分があることがわかります。
  1. これらは readme-improver からの変更点です。
  2. 結合した結果。現時点では、これは変更前に存在していたものです。
  3. master ブランチからの変更。
誰もが満足できる統合結果を生み出す必要があります。変更前の変更内容を確認すると、単に「fully」という単語が削除されただけであることがわかります。いいよ、大丈夫!つまり、マージ結果からも削除してから変更を追加します。マージ結果を修正したら、 「適用」をクリックします。次に、リベースが成功したことを示す通知がポップアップ表示されます天国のような組み合わせ: Git と IntelliJ IDEA - 25。最初の競合は IntelliJ IDEA を通じて解決しました :D

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

次のステップでは、変更をリモート サーバーにプッシュし、プル リクエストを作成します。これを行うには、CTRL+SHIFT+Kを押すだけです。左側には天国のような組み合わせ: Git と IntelliJ IDEA - 26、リモート リポジトリにプッシュされていないコミットのリストが表示されます。右側には、変更されたすべてのファイルが表示されます。以上です!Pushを押すと幸せを感じるでしょう :) プッシュが成功すると、右下隅に次のような通知が表示されます。天国のような組み合わせ: Git と IntelliJ IDEA - 27

ボーナスパート

当初、この記事にプル リクエストの作成を追加するつもりはありませんでしたが、これなしでは完全とは言えません。それでは、GitHub リポジトリ (もちろんあなたのものです :)) に行きましょう。すると、GitHub が私たちが何を望んでいるのかをすでに知っていることがわかります。 [比較とプル リクエスト]天国のような組み合わせ: Git と IntelliJ IDEA - 28をクリックします。次に、「プルリクエストの作成」をクリックします。事前に競合を解決したので、プル リクエストを作成するときにすぐにマージできるようになりました。今回言いたかったのはこれだけです。もちろん、私はあなたのためにドアを少し開けて、ほんの一部をお見せしただけです。残りの部分については、必要に応じて学習します。GitHub でフォローするよう招待する習慣があります天国のような組み合わせ: Git と IntelliJ IDEA - 29, ここでは、仕事で使用するさまざまなテクノロジーを含むプロジェクトを投稿しています。私は最近、個人的な成果を上げました。私のプロジェクトの 1 つが100 人以上の開発者から星を獲得しました。自分のやったことが他の人に使われているとわかると、とてつもない喜びを感じます。そしてそれを大切に使ってください。

役立つリンク

  1. CodeGym: Git 入門: 初心者向けの包括的なガイド
  2. GitHub:練習用のデモプロジェクト
  3. JetBrains: Git リポジトリのセットアップ
  4. GitHub:私のアカウント
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION