【Git】 Gitの操作の大まかな流れと説明(中編)
はじめに
本記事では、プログラムの管理システムであるGitの操作手順を説明します。前編(https://note.com/shogai2359_cp21/n/n7a0047069682)では主に1人で開発を行う場合の一連の操作法を説明しました。
しかし、Gitは複数人(チーム)が1つのプロジェクトを管理する際に特に効果を発揮するツールです。
そこで中編では、主に複数人(チーム)が1つのプロジェクトを開発する場合の一連の操作法を説明します。
なお、今回は「『yuta-pharmacy2361』というユーザー(今後「ゲスト側」)が、『yuta-pharmacy2359』により立ち上げられた『JavaScript_Tutorial』というユーザー(今後「ホスト側」)プロジェクト(前編参照)に参画して共同開発を行う」という設定で説明を行います。
1. 事前準備(プロジェクトへの招待)
他のユーザーをプロジェクトに参画させるためには、まずGithubでそのユーザーを招待する必要があります。
(1) ホスト側のアカウントで参画させるプロジェクト(今回は『JavaScript_Tutorial』)のリモートリポジトリ画面を開き、「Settings」をクリックします。
(2) 左のサイドバーで、「Manage access」をクリックします。
(3) 「Add people」をクリックします。
(4) 参画させたいユーザー名(今回は『yuta-pharmacy2361』、今後ゲスト側)を検索、選択します。
(5) 「Add (ゲストユーザー名) to this repository」をクリックします。
(6) 以下の画像のようになれば、ホスト側での操作は終了です。
(7) ゲスト側に招待メールが届きます。「View invitation」をクリックします。
(8) 「Accept invitation」をクリックします。
(9) ゲスト側でも『JavaScript_Tutorial』のリポジトリが表示されます。
これでゲスト側での操作も終了です。
※ゲストが招待を承認すると、ホスト側での(6)の画面における「Pending invite」の表示が消えます。
これで事前準備は完了です。
2. ゲスト側の開発におけるGit操作
ゲストをプロジェクトに招待したら、まずはゲストが開発を行えるようにプロジェクトのリモートリポジトリをローカルに引っ張ってくる必要があります。
(1) 当該プロジェクトのリポジトリ画面で、「Code」をクリックし、出現したウィンドウの中で表示されているURLをコピーします。
(2) ターミナルを開き、プロジェクトフォルダを置くディレクトリに移動し、以下のコマンドを入力します。
(プロジェクトフォルダを置くディレクトリ) % git clone ((1)でコピーしたURL)
上記のフォルダを確認すると、プロジェクトのフォルダが生成しているのが確認できます。
(3) 開発を行い、(2)で生成したプロジェクトフォルダに対してファイル追加、または変更します。
(4) 前編の「4. 変更内容のリモートリポジトリへの反映(push)」と同様の操作で、リモートリポジトリへのpushまで行います。
(記事前編のURL: https://note.com/shogai2359_cp21/n/n7a0047069682)
3. ゲスト側変更内容のホスト側ローカルリポジトリへの反映
前項の操作でゲスト側での変更内容がリモートリポジトリに反映されました。
一方、ホスト側のローカルリポジトリの内容は変更前の状態のままとなっているため、ホスト側が開発を再開するためには先ずその変更内容を反映させる必要があります。
(1) 当該プロジェクトのリモートリポジトリの画面で、最後に開発を行なったのが自分以外であることを確認します。
(2) リモートリポジトリの内容を(ホスト側の)ローカルリポジトリに反映させます。以下のコマンドを入力します。
(ローカルリポジトリ名) % git pull (リモートリポジトリ名) (ブランチ名)
一般的な定義は上記のように表現されます。今回の場合は、以下のようになります。
(ローカルリポジトリ名) % git pull origin master
pushが正しく処理されると、ターミナルで以下のように表示されます。
(ゲスト側が行なった変更との差分が表示されています。)
これでホスト側のローカルリポジトリも最新の状態に更新されました。あとはこれまで説明してきた内容と同じ流れです。
おわりに
本編では、主に複数人(チーム)が1つのプロジェクトを開発する場合の一連の操作法を説明しました。
基本的にはここまででの説明でも開発を行うことはできますが、Gitには「プルリクエスト」という、「コードなどを追加・修正した際、リモートリポジトリへの反映を他の開発者に依頼する機能」や、「ブランチ」という「プロジェクトを分岐させて開発・管理を行う機能」もあります。
本編で紹介したように誰もが好き勝手にpushしてリモートリポジトリに反映させるのではなく、一旦変更内容をチェックしてから反映させることで、開発の効率や精度も上がります。
また、これまで「master(main)」ブランチのみの利用を前提に説明してきましたが、そこから機能ごとに分岐させて管理することにより、複数人で同時に開発を進めることができる、また万一不具合が発生した際も問題の切り分けや対処が容易になるなどのメリットがあります。
後編では、主にその「プルリクエスト」や「ブランチ」の使用方法について説明していきたいと思います。
参考文献
・GitHub Docs 「コラボレーターを個人リポジトリに招待する」
・(O+P)ut 「【Git】プライベートGithubからSSH/HTTPSでcloneを行う方法」
(URL: https://www.mtioutput.com/entry/git-clone-sshhttps)