
必須入力:
- Git に関する私の記事を読み、フォローして、理解してください。これにより、すべてがセットアップされ、すぐに使用できるようになります。
- IntelliJ IDEA をインストールします。
- 完全にマスターするために、1 時間の個人的な時間を割り当ててください。
プロジェクトのクローンをローカルに作成する
ここには 2 つのオプションがあります。- すでに GitHub アカウントをお持ちで、後で何かをプッシュしたい場合は、プロジェクトをフォークして独自のコピーを複製することをお勧めします。
- リポジトリのクローンを作成し、すべてをサーバーにプッシュすることなく、すべてをローカルで実行します。結局のところ、これは私のリポジトリです:)
-
プロジェクトのアドレスをコピーします。
-
IntelliJ IDEA を開き、「バージョン管理から取得」を選択します。
-
プロジェクトのアドレスをコピーして貼り付けます。
-
IntelliJ IDEA プロジェクトを作成するように求められます。オファーを受け入れます:
-
ビルド システムはなく、この記事の範囲を超えているため、 [既存のソースからプロジェクトを作成]を選択します。
-
次に、この美しい画面が表示されます。
クローン作成について理解したので、周りを見てみましょう。
Git UI としての IntelliJ IDEA の概要
クローンされたプロジェクトを詳しく見てみましょう。バージョン管理システムに関する多くの情報がすでに得られています。まず、左下隅にバージョン管理ペインがあります。ここでは、すべてのローカル変更を検索し、コミットのリストを取得できます (「git log」に似ています)。Logの説明に移りましょう。開発がどのように進行したかを正確に理解するのに役立つ特定の視覚化があります。たとえば、 txt commit にヘッダーが追加された新しいブランチが作成され、それが master ブランチにマージされたことがわかります。コミットをクリックすると、右隅にコミットに関するすべての情報 (すべての変更とメタデータ) が表示されます。



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

私達は何が欲しいのか?
仕事を成し遂げるには、どこでも使われる基本的なシナリオをマスターする必要があります。目的は、新しい機能を別のブランチに実装し、それをリモート リポジトリにプッシュすることです (その後、メイン ブランチへのプル リクエストを作成する必要もありますが、それはこの記事の範囲を超えています)。これを行うには何が必要ですか?-
メイン ブランチ (たとえば、「master」) 内の現在の変更をすべて取得します。
-
このメイン ブランチから、作業用に別のブランチを作成します。
-
新しい機能を実装します。
-
メイン ブランチに移動し、作業中に新たな変更があったかどうかを確認します。そうでない場合は、すべて問題ありません。ただし、変更があった場合は、次の操作を実行します。作業ブランチに移動し、変更をメイン ブランチから私たちのブランチにリベースします。すべてがうまくいけば、素晴らしいことです。しかし、衝突が起こる可能性は十分にあります。偶然にも、リモート リポジトリで時間を無駄にすることなく、事前に解決することができます。
なぜこれを行う必要があるのか疑問に思いますか? これは良いマナーであり、ブランチをローカル リポジトリにプッシュした後に競合が発生するのを防ぎます (もちろん、依然として競合が発生する可能性はありますが、競合は大幅に小さくなります)。
- 変更をリモート リポジトリにプッシュします。
リモートサーバーから変更を取得しますか?
新しいコミットで README に説明を追加し、これらの変更を取得したいと考えています。ローカル リポジトリとリモート リポジトリの両方で変更が行われた場合は、マージかリベースのどちらかを選択するよう求められます。私たちは合併することを選択します。 CTRL+T を入力します。

マスターに基づいて新しいブランチを作成します
ここではすべてがシンプルです。-
右下隅に移動して、「Git: master」をクリックします。[+ 新しいブランチ]を選択します。
[チェックアウト ブランチ]チェックボックスを選択したままにし、新しいブランチの名前を入力します。私の場合は、 readme-improverになります。

Git: master はGit: readme-improverに変更されます。
並行作業をシミュレーションしてみよう
競合が発生するには、誰かが競合を作成する必要があります:D ブラウザーを介して新しいコミットで README を編集し、並行作業をシミュレートします。私が作業している間に誰かが同じファイルに変更を加えたかのようです。その結果、衝突が起こることになります。10行目から「fully」という単語を削除します。機能を実装する
私たちのタスクは、README を変更し、新しい記事に説明を追加することです。つまり、Git での作業は IntelliJ IDEA を経由します。これを追加します:


main ブランチが変更されたかどうかを確認する
私たちは任務を完了しました。できます。私たちはテストを書きました。すべて順調。ただし、サーバーにプッシュする前に、その間にメイン ブランチに変更があったかどうかを確認する必要があります。どうしてそんなことが起こるのでしょうか?非常に簡単に、誰かがあなたの後にタスクを受け取り、その誰かがあなたのタスクを完了するよりも早くタスクを完了します。したがって、master ブランチに移動する必要があります。これを行うには、以下のスクリーンショットの右下隅に示されている操作を行う必要があります。master



- あなたのものを受け入れる — readme-improver からの変更のみを受け入れます。
- 彼らのものを受け入れる — マスターからの変更のみを受け入れます。
- マージ — 何を残し、何を破棄するかを自分で選択します。

- これらは readme-improver からの変更点です。
- 結合した結果。現時点では、これは変更前に存在していたものです。
- master ブランチからの変更。

変更をリモートサーバーにプッシュする
次のステップでは、変更をリモート サーバーにプッシュし、プル リクエストを作成します。これを行うには、CTRL+SHIFT+Kを押すだけです。左側には

ボーナスパート
当初、この記事にプル リクエストの作成を追加するつもりはありませんでしたが、これなしでは完全とは言えません。それでは、GitHub リポジトリ (もちろんあなたのものです :)) に行きましょう。すると、GitHub が私たちが何を望んでいるのかをすでに知っていることがわかります。 [比較とプル リクエスト]


役立つリンク
- CodeGym: Git 入門: 初心者向けの包括的なガイド
- GitHub:練習用のデモプロジェクト
- JetBrains: Git リポジトリのセットアップ
- GitHub:私のアカウント
GO TO FULL VERSION