1. はじめに:プロジェクトのクローン作成
前回の講義の続きから始めましょう。あなたは GitHub 上に作成したリポジトリを持っています。これを自分のコンピューターにローカルコピーとして取得して作業を開始する必要があります。このプロセスはクローン作成と呼ばれます。
手順 1. IDE を起動します。すでに何らかのプロジェクトが開いている場合は、File -> Close Project で閉じます。スタート画面で Clone Repository または Get from VCS を選択します。
手順 2. 開いたウィンドウにリポジトリの URL を貼り付けます。他人のリポジトリをクローンする場合に便利な方法です。URL は GitHub のリポジトリページからコピーできます。
自分のリポジトリをクローンする場合(この講義の想定)、最も簡単なのは IDE から直接 GitHub アカウントにログインすることです。そのために Log in to GitHub オプションを選択します。IDE が認可のためにブラウザーを開きます。
開いたページで緑のボタン Authorize JetBrains をクリックしましょう。これで IDE のリストから自分のリポジトリを直接選べるようになります。目的のプロジェクトを選び、Clone をクリックします。
手順 3. IDE がこのプロジェクトを信頼するかどうかを尋ねます。自分のリポジトリなので、Trust Project をクリックします。
手順 4. ウイルス対策の設定(Windows ユーザー向け)
Windows のウイルス対策ソフトは、IDE が未知の操作を行おうとしていると警告する場合があります。これからプログラムを作成・実行するため、IDE が制限なく動作できるようにする必要があります。ボタン「Automatically」をクリックして、IDE に必要なフォルダを自動的にウイルス対策の除外に追加させましょう。
2. 変更の保存:Commit
commit は、プロジェクトの特定時点における「スナップショット」、つまり保存された状態です。ゲームのセーブポイントのようなものだと考えてください。うまくいかなかった場合でも、その時点に戻ることができます。各コミットには固有の識別子と、行った変更を説明するメッセージがあります。
gitGraph
commit id: "Initial commit"
commit id: "Add user authentication"
commit id: "Fix login button bug"
commit id: "Refactor database connection"
コミット履歴。各新しいコミットは前のコミットの上に積み重なり、プロジェクトの発展の年表を作ります。
手順 1. 変更を加える。
新しく作成したばかりのリポジトリをクローンした場合、含まれているのは 1 つのファイル — README.md のみです。
README.md を開き、プロジェクトの説明を追記します。ファイルの編集を始めると、IDE はプロジェクトパネルでそのファイル名を 青色 にハイライト表示します。これはファイルが変更されたが、まだ Git に保存されていないことを意味します。IDE は変更を加えた箇所に 緑のライン を表示します。
手順 2. Commit ウィンドウを開く。
IDE の左側に Commit タブがあります。ここを開くと、保存対象のすべての変更が表示されます。最初のコミットでは、このウィンドウに特に注意を払いましょう。
表示内容を確認しましょう。
- Changes: すでに Git が追跡しているが、変更されたファイルがここに表示されます。今回の場合は、計画を追加した
README.mdです。 - Unversioned Files: プロジェクトフォルダに存在し、Git が見つけてはいるものの、まだ追跡していない新規ファイルです。
これらの補助ファイルをすべてリポジトリに追加する必要があるのか、という疑問が湧くかもしれません。
良いニュースとして、GitHub でリポジトリを作成したときに .gitignore テンプレートを選択していれば、このファイルには不要なフォルダやファイルを Git に無視させるルールがすでに含まれています。詳細は講義の最後で説明します。
それまでは、最初のコミットの目的は、プロジェクトの主要ファイルを履歴に追加し、コミットメッセージを書くことです。
手順 3. コミットを実行する。
Commit ボタンをクリックします。完了です!プロジェクトの「スナップショット」をローカルリポジトリに保存しました。ファイルは再び通常の色に戻ります。
3. 変更を GitHub に送る:Push
コミットは現時点ではあなたのコンピューター上にのみ保存されています。チームと共有したり、安全な場所に保管するには、GitHub のリモートリポジトリに送信する必要があります。
sequenceDiagram
participant ローカルリポジトリ(あなたのコンピューター)
participant リモートリポジトリ(GitHub)
note over ローカルリポジトリ(あなたのコンピューター): あなたは 1 つ以上のコミットを作成しました。
それらはここにしか存在しません。
ローカルリポジトリ(あなたのコンピューター) ->> リモートリポジトリ(GitHub): git push(コミットを送信)
note over リモートリポジトリ(GitHub): あなたのコミットはコピーされ、
サーバー上で安全に保存されます。
手順 1. Push ボタンをクリック。
IDE の右上に上向きの緑の矢印があります。これが Push ボタンです。クリックします。
手順 2. 確認して送信。
送信準備ができているコミットがすべて表示されるウィンドウが開きます。送信内容を確認できる最後のチャンスです。Push をクリックします。
問題なく完了すると、次のメッセージが表示されます: Pushed commits to origin/main. Create pull request
手順 3. GitHub で結果を確認。
正常に送信されたら、GitHub のリポジトリページを開きましょう。変更が反映されているはずです。
4. Git コントロールパネル
IDE には上部メニューに Git という専用メニューがあります。これがバージョン管理のコントロールセンターです。主要な項目を簡単に見てみましょう。
Commit: 先ほど見た変更を保存するウィンドウを開きます。Push: コミットを GitHub に送信するためのウィンドウを開きます。Update Project: とても重要な機能です。他のメンバーの最新変更を取得します(git pullを実行)。作業開始前の毎朝、押す習慣をつけましょう!Branches: ブランチ管理のウィンドウを開きます。これについては次回の講義で詳しく扱います。Show Git Log: プロジェクトのコミット履歴をすべて表示します。あなた専用のタイムマシンです。
5. .gitignore ファイルの使用
プロジェクトに補助的なファイルを追加しており、それらが誤ってリポジトリに入らないようにしたい場合は、例外として追加できます。そのためのファイルが .gitignore です。バージョン管理に保存する必要のないファイル(例:一時ファイル、ログ、パスワードなど)があるプロジェクトでは非常に便利です。
手順 1. まず、無視したいプロジェクトディレクトリ内にファイルを作成します。例:notes.txt。ファイル作成後、IDE が Git に追加するか尋ねてきたら、Cancel をクリックします。
手順 2. 「Project」ウィンドウで作成したファイルを右クリックします。Git --> Add to .gitignore --> Add to .gitignore に進みます。この操作は、選択したファイル名をプロジェクトルートの .gitignore に追加します。
まだ .gitignore が存在しない場合、IDE は作成を提案します。承諾しましょう。
手順 3. IDE は自動的にそのファイル名を .gitignore に追加します。
.gitignore に追加すると、無視対象のファイルはグレーまたは茶色で表示されます。コミットしようとしても、これらのファイルは無視されます。フォルダ .idea は無視対象に追加して構いません。
.gitignore 自体のファイルをコミットし、変更を GitHub にプッシュするのを忘れないでください。そうすることで、プロジェクトの全メンバーが同じ無視ルールを使用できます。
ローカルファイルの除外:.git/info/exclude
すべてのユーザーに対して除外を行う .gitignore とは別に、Git にはローカル専用の無視ルールを .git/info/exclude に作成する機能があります。これらはリポジトリにコミットされず、あなたのローカルコピーのみに適用されます。
例えば、IDE が生成するファイルでバージョン管理に含めるべきではないが、自分にだけ特有のものを無視したい場合に便利です。
重要! ローカルの無視ルールは、あなたのローカルリポジトリにのみ適用されます。
すでにコミットしてしまった場合は?
.gitignore は新規で、まだ追跡されていないファイルのみを無視します。すでにコミットしたファイルはリポジトリ履歴に存在するため、たとえ .gitignore に追加しても Git は追跡を続けます。そのような場合には、ターミナルで使うコマンドがあります:git rm --cached <file>。詳細は別途調べましょう。
.gitignore のルール
.gitignore には、Git が無視すべきファイル名やフォルダ名のパターンを指定します。
空行は無視されます。コメントを追加するには、行頭を # で始めます。
パターン:
*— 任意の文字列(0 文字以上)にマッチします。例:*.logは拡張子.logのすべてのファイルを無視します。/— パターンの末尾に置くとディレクトリを意味します。例:logs/はフォルダlogsの内容をすべて無視します。!— 行頭に置くとルールを反転します。例:*.logのルールがあるがimportant.logだけは追跡したい場合、!important.logを追加します。**— 任意の深さのサブディレクトリにマッチします。例:**/tempはどの階層にあってもtempフォルダを無視します。
.gitignore の例
# コンパイル済みコード
/bin/
/obj/
# 一時ファイル
*.tmp
*.swp
# ログ
*.log
# IDE によって作成されるフォルダ
.idea/
*.user
*.suo
# 仮想環境と依存関係
/venv/
/node_modules/
既製のテンプレート
これらのファイルをゼロから書く必要はありません。コミュニティで検証済みのテンプレートが存在します。
- GitHub による各言語・フレームワーク向け
.gitignoreコレクション:https://github.com/github/gitignore。 - gitignore.io — 技術スタックに合わせて
.gitignoreを生成してくれる便利な Web サービス。
GO TO FULL VERSION