githubでチーム開発をする方法のメモ(ruby on rails)

#はじめに



某プログラミングスクールにて、cloud9環境でrailsを用いたチーム開発を行ったので、その際に行った、GitHubの連携方法をまとめました。
（プログラミング歴２か月のひよっこです。間違い等ございましたら、大変もうしわけございません。）

GitHub連携の大まかな流れ
①リーダーがGitHubにチーム開発用のリポジトリを作成する。
②リーダーがローカル上でアプリケーションを作成し、そのデータをGitHubのリポジトリに繋げる。
③リーダーがチーム開発メンバーをGitHubのリポジトリに招待する
④チーム開発メンバーが、リーダーの作成したアプリをローカル上にクローン（コピー）する。
⑤チーム開発メンバー各々が、ブランチを作成して作業をはじめる。
⑥ブランチでの作業全てが終われば、プルリクエストを行い、メインブランチにマージする。

#①リーダーがGitHubにチーム開発用のリポジトリを作成する。
リーダーはGitHubにチーム開発用のリポジトリを作成しましょう。
Githubにログインし、トップページから、図１のNewをクリックしましょう。!

(図１)
![git1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/a522f762-317d-5159-34e0-d9678e591423.png)

Newをクリックした後、Repository nameは適当な名前を決めましょう。
また、リポジトリを一般に公開したい場合は、Publicを、公開したくない場合はPrivateをクリックしましょう。

（図２）
![git2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/5259a1d6-f6cc-142b-48e6-0575d372e49c.png)

上記の入力を終えれば、Create repositoryをクリックしましょう。

#②リーダーがローカル上でアプリケーションを作成し、そのデータをGitHubのリポジトリに繋げる。
アプリケーション作成後は下記のQiitaを参考に、GitHubのリポジトリに繋げてください。


https://qiita.com/nijimajohn/items/e1af896e328979d3e7ea

#③リーダーがチーム開発メンバーをGitHubのリポジトリに招待する
ここまでで、リーダーの主な作業は終わりました。後は、リポジトリーにメンバーを招待しましょう。
自身の作成したリポジトリに移動し、図３のSettingsをクリックしましょう。

（図３）
![git3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/473d19e8-253d-c568-9621-be631c73d842.png)


settingsクリック後、図４のManege Accessをクリックしましょう。

（図４）
![git4.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/1eaedbe4-477c-f102-cdff-2babd809f944.png)

その後、図５のInvite a collaboratorをクリックしましょう。

（図５）
![git5.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/32f390b7-6d20-9f83-dde4-45d2f76bc3e3.png)

Invite a collaboratorのクリック後、リポジトリに招待したいチームメンバーのGitHubのアカウント名を入力しましょう。入力後、図６の矢印が示すボタンをクリックすれば招待完了です。
招待されたチームメンバーはGitHubからの招待メールを確認しましょう。招待メールからリーダーのリポジトリに参加ができます。ここまでで、チームメンバーはリーダーのリポジトリに入れました。


（図６）
![git6.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/5b9c7e85-7032-2629-9d2b-7bd278d6aeff.png)

#④チーム開発メンバーが、リーダーの作成したアプリをローカル上にクローン（コピー）する。
チームメンバーはリーダーの作ったアプリをクローンするために、ターミナルに移動しましょう。
アプリを作成するディレクトリーに移動した後に、ターミナルでgit cloneを行いましょう。SSHは図７のCodeの場所の、黄色い蛍光ペンで塗った場所から引用できます。

```
git clone SSHコード
```

（図７）
![git7.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/ebaf337d-8c38-2c73-cca9-8169ea8d6f77.png)

これでチームメンバーはリーダーのアプリケーションをクローンすることができました。

#チーム開発メンバー各々が、ブランチを作成して作業をはじめる。
ここから、チームメンバーは開発に取り組むことができます。メンバー各々でブランチを作成して作業を行いましょう。
ブランチの作成方法は下記の通りです。

```
git branch ブランチ名
git checkout ブランチ名
```

#⑥ブランチでの作業全てが終われば、プルリクエストを行い、メインブランチにマージする。
メンバーがブランチでの作業が終われば、下記の記事を参考に、Githubのリポジトリに作業内容をアップロードしましょう。

https://qiita.com/nijimajohn/items/e1af896e328979d3e7ea

そして、作業が終わったブランチをメインブランチにマージ（合成）しましょう。

マージをするためにプルリクエストを行いましょう。
プルリクエストは、リーダーの作成したリポジトリに移動し、図8のpull resuestsをクリックしましょう。
(図８)
![git8.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/c3a7f0d5-37ac-6b23-33b5-a450c9bcf0c8.png)

そして、（図９）のNew pull requestをクリックしましょう。
（図９）
![git9.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/d1b6bc63-6815-409e-7ac1-84978d57efef.png)

図10の画面に移動後、compareには作業していたブランチを、baseにはマージ先のブランチを選択しましょう。そしてCreate pull requestを行いましょう。
（図10)
![git10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/2b38eee4-1dba-0673-de6b-6fcf7c6f4905.png)

その後、図11のFile changedから変更したファイルをチームメンバーで確認して、コンフリクト等の問題がなければ、pull requestの画面に戻り、下にスクロールして図12のMarge pull requestをクリックしましょう。
（チームメンバーが同じファイルを触った場合、コンフリクトが起こりますので、ローカル環境またはGithub上でコンフリクトを解消しましょう。）

（図11）
![git11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/691a55e9-6ab0-c387-85ea-49476f621d04.png)

（図12)
![git12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1876077/2e038b69-b7a1-4169-1672-04609c0ebacf.png)

これでマージは完了しました。メンバーはマージした情報をローカル環境に移すために、下記のコマンドを実行しましょう。

```
git pull origin main
```

#最後に

お疲れさまでした！GitHubでのチーム開発の流れはここまでとなります！