【eclipse/github】eclipseで作ったプロジェクトをgithubで共有しよう 初学者用

#eclipseって？
統合開発環境（IDE）のひとつ
エディタとしてソースコードを記述できるのはもちろんのこと、サーバーソフトを内包していてより本番に近い形でプログラムを実行したりと、とてもすごいヤツ

#githubって？
[githubはこちら](https://github.co.jp/)
ここでは説明しないので、各自調べましょう（出だしから投げやり）

###この記事の前提
 - githubで空のリポジトリを作っている（[作り方はこちら](https://qiita.com/programiblis/items/f60c9d38fc996871adbc)）
 - eclipseをインストールしている（この記事ではJava用のeclipseを使います）

では、この記事の目的であるeclipseで作ったプロジェクトをgithubにアップロードしていきましょう

#eclipseで作ったプロジェクトをgithubで共有しよう
まずは、アップロードするためのプロジェクトを作成していく
1. ファイル→新規→その他をクリック

|![git_eclipse00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/0e461faa-009f-6c76-4486-612d0b5ab9ae.png)
---
---
1. Web→動的Webプロジェクト→次へをクリック

|![git_eclipse01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/a5a0df0b-530e-efd4-fc62-07dd709ba26b.png)
---
---
1. プロジェクト名に「GitTest」と入力（好きな名前でよい）
2. 完了をクリック

|![git_eclipse02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/c8ff6f7a-8dc1-b7fe-a904-8076bb169909.png)
---
---
1. 作ったプロジェクトを右クリック
2. チーム→プロジェクトの共有をクリック

|![git_eclipse03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/8c7dabfd-f35b-64c6-b25a-26e45c1e2fd6.png)
---
---
1.Git→次へをクリック

|![git_eclipse04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/802700d2-f9bc-3d2a-7941-4380939c44d7.png)
---
---
1. プロジェクトの親フォルダー内のリポジトリーを使用または作成にチェックを入れる

|![git_eclipse05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/36d55df7-c6ca-9392-b74a-1c5c6a7a99b0.png)
---
---
1. 「GitTest」をクリック
2. リポジトリーの作成をクリック
3. 完了をクリック

|![git_eclipse06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/02bdf0f3-99f8-a727-33b5-cc01cae6b6cd.png)
---
---
1. 「GitTest」を右クリック
2. チーム→コミットをクリック

｜![git_eclipse07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/862fbb01-4def-1cac-49d7-b651d7204d67.png)
---
---
1. 緑色の++マークをクリック
2. コミットメッセージに「1」を入力（何でもよい）
3. コミットおよびプッシュをクリック

|![git_eclipse08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/207fdac9-01df-46d0-3260-5f18698d5e57.png)
---
---
1. URIにコピーしてきたクローンURLを入力([こっちの記事のおまけ参照](https://qiita.com/programiblis/items/f60c9d38fc996871adbc)）
2. githubのユーザーIDとパスワードを入力
3. 次へをクリック

|![git_eclipse09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/6702eb91-6332-cb28-ce85-cf934f9a9a89.png)
---
---
1. 次へをクリック

|![git_eclipse10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/01db0b11-4b65-028c-6bac-6907a600debf.png)
---
---
1. プッシュの予想結果が拒否になっていることを確認する
2. 完了をクリック

|![git_eclipse11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/9a294467-8057-a975-d708-9b42b8171849.png)
---
---
1. プッシュ結果が拒否であることを確認する
2. 閉じるをクリック

|![git_eclipse12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/528c5749-96da-d0d4-37cf-6e4ecd08c52c.png)
---

#拒否された理由を無くそう
プッシュを拒否されたため、githubのリポジトリ内を確認してもデータがアップロードされていません
調べていても、ここを突破する方法が記載されていないことが多いので、続けてやり方を記載していきます

1. 「GitTest」を右クリック
2. チーム→プルをクリック

|![git_eclipse13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/8871df6e-b1de-c084-d808-93e9cf0ad03e.png)
---
---
1. 閉じるをクリック

|![git_eclipse14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/16f1cd34-f054-5858-6750-e51e86a098c3.png)
---
---
1. 「GitTest」を右クリック
2. チーム→ブランチのプッシュをクリック

|![git_eclipse15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/db4eb7ff-f483-041b-5f57-d731394abd7b.png)
---
---
1. プレビューをクリック

|![git_eclipse16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/4558bc37-ea1e-5f60-46d4-d0a0ae97adf0.png)
---
---
1. プッシュの予想結果が拒否ではないことを確認する
2. プッシュをクリック

|![git_eclipse17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/04e76368-27a4-2c0f-1728-d3024b9b901d.png)
---
---
1. プッシュ結果が拒否ではないことを確認する
2. 閉じるをクリック

|![git_eclipse18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/f3c693c2-b8be-8d2a-cac1-c1c3cae4a046.png)
---
---

1. githubにサインインして、無事にアップロードされているかを確認する
- **確認できたらgithubに共有完了**

|![git_eclipse19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/570931/3d9e5299-602f-339e-9bde-f1bad73f0bc1.png)
---

#コミット、プッシュ、プルって？
- コミットとは、ローカルPCのリポジトリにデータを保存すること。ゲームでいうと本体へのセーブ機能
- プッシュとは、インターネット上にあるgithubに対してローカルPCのリポジトリをアップロードすること。ゲームでいうとクラウドセーブの送信
- プルとは、インターネット上にあるgithubに保存したリポジトリをダウンロードすること。ゲームでいうとクラウドセーブの受信

#なんで最初のプッシュが拒否されたの？
**簡潔にいうと、データの整合性を取るため**
最初にプッシュを行った段階ではgithubの空のリポジトリの状態を受信しておらず、そのままプッシュを行うとデータを全部上書きしてしまう恐れがあるため、拒否された
プルしてgithub上のリポジトリの状態を受信することでリポジトリと自分が作ったデータとの整合性が取れ、アップロードが通るようになった

#本来のやり方
空のリポジトリを作る時にcreate new fileをせず、作ったままにこの手順を実行すれば最初のプッシュが拒否されたりはしません（新しいファイルを作らなければリポジトリを操作した形跡がないので上書き保存しても問題ない）
しかし、２台目以降のPCで共有を行う場合や、うっかりファイルを作ったりなんだりしてしまったがために３日くらい詰まっていた初心者がいた為、この記事を書くに至った