Gitを使ったチーム開発(eclipse編)

## Eclipseでチーム開発する際のシンプルな方法(今の段階)

Eclipseでチーム開発をすることはよくあることですがこれを執筆している段階では
感染症対策の問題もあり開発者がすべてリモートの環境で開発することも多くなってきました。

そうなってくるとGitの**pull**がないとチーム開発は大変な困難なものになります。
今の段階でチームが「明日から全員リモートでチーム開発をしてください！」と言われたときにどうすればシンプルにうまくいくのか自分の考えも含め説明させていただきます。

以下のeclipseの環境で実施しています。

- **Photon Release (4.8.0)**

結論としては以下になりました。

-  リポジトリの管理者を決めmasterブランチを管理する。
- 各開発者はそれぞれブランチを持つ
- 各開発者はコミットをする前に必ずpullをする

## 以下が自分の考えるシンプルな開発のやり方です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/74fabfe1-5c74-6466-3335-58906d3e0008.png)



上図がちょっと見えにくいのですが10のステップに分かれています。

以下を順を追ってeclipseを使ったやり方を説明します。

+ ①EclipseプロジェクトをGit管理にする方法
+ ②リモートリポジトリ作成方法
+ ③リモートリポジトリをEclipseで扱う方法
+ ④Eclipse上からGitのリモートリポジトリにコミットする方法
+ ⑤クローンしたリモートリポジトリをEclipseに追加する方法
+ ⑥Eclipse上で新規にブランチを切る方法（およびチェックアウト）
+ ⑦リモートから最新を取得する方法(fetch)
+ ⑧リモートの最新を取得し開発したソースコードをマージする方法(プル)
+ ⑨コミットに失敗したときにコミットを削除する方法
+ ⑩競合が起きた場合の解決方法

### ①EclipseプロジェクトをGit管理にする方法(インポートする際は不要)

プロジェクトを右クリックし以下図「チーム」→「プロジェクトの共用」をクリックする
Gitを選択する、

次の画面で「プロジェクトの親フォルダのリポジトリの使用または作成」
にチェックを入れて完了ボタンを押す

### ②リモートリポジトリ作成方法

※Githubの場合

Githubにログインし右上の「new repository」をクリックし画面の指示に従い作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/46fb0fde-acb1-9d3b-0f40-7f6c693d0eee.png)

### ③リモートリポジトリをEclipseで扱う方法

GitリポジトリのビューからGitリポジトリをクローンしこのビューに追加をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/1c212ce3-2fb7-e063-e3a5-43bb5110715f.png)


### ④Eclipse上からGitのリモートリポジトリにコミットする方法

ソースコードの編集が完了したらプロジェクトのチーム→コミットを選択する。

ステージされていない変更を図の緑の「++」でコミット対象にすることを忘れずに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/126af957-2fc3-7b5d-c494-4000b4b04196.png)


### ⑤クローンしたリモートリポジトリをEclipseに追加する方法

プロジェクトエクスプローラー(JavaやJavaEEなどのプロジェクトがツリー状に表示されるビュー)
で右クリックしインポート→インポートを選択する

インポートの画面で「Gitからプロジェクト」を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/391334bd-8fd0-9025-6011-1ba352773510.png)

既存リポジトリもしくはクローンURIでクローン元のURIを入力する。(図はローカルリポジトリをインポートした場合)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/80ecad20-0073-5d4b-c2f9-9cfd5fe7451b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/90d59bde-b991-1d11-4a23-ae77610931a0.png)

「既存プロジェクトをインポート」を選択して次へを選択し対象のプロジェクトを選択し完了する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/fe8f3ef9-cd69-0156-6eb7-bd54f865c008.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/6eca82dc-e4b7-4902-d544-7678665a13de.png)

### ⑥Eclipse上で新規にブランチを切る方法（およびチェックアウト）

Gitリポジトリーのビューから下図のようにブランチを右クリック、切り替え→新規ブランチで可能、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/67312795-45cb-3bce-dfe5-a95e0afa2803.png)

作成したブランチに自動でチェックアウトされている。ほかのブランチでチェックアウトしたい場合は
ブランチを右クリックしチェックアウトを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/f3aa4ea8-e1e8-e261-1581-da6d95f543c4.png)


### ⑦リモートから最新を取得する方法(fetch)
プロジェクトを右クリック、チーム→「originからフェッチ」を選択する

### ⑧リモートの最新を取得し開発したソースコードをマージする方法(プル)

**[Githubを使用する場合はpullリクエストをしてからpullをしてください](https://qiita.com/aipacommander/items/d61d21988a36a4d0e58b)**

プロジェクトを右クリック、チーム→プルを選択する
プル(U)はorigin/masterから最新を
その下のプルは好きなブランチからプルをしてくれる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/33f6b0a1-dae9-2b1b-e142-c7a38c58b94e.png)


※なぜコミット前にプルを使うか？
→これまでの変更の最新を取得し変更分をマージしてくれるから

### ⑨コミットに失敗したときにコミットを削除する方法
プロジェクトを右クリック、チーム→リセットを選択する

### ⑩競合が起きた場合の解決方法
チーム同期化ビューから同期化をおこなう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280363/54c9afc2-b9aa-8920-fb7b-b74cf5294db2.png)

##変更履歴
- 2020/4/20 新規作成