git管理していないプロジェクトを既存gitリポジトリに紐付ける

##経緯・概要
職場のとある案件で新規プロジェクトを作成する機会があった。
プロジェクトは、新規gitリポジトリで管理することとなっており、
リポジトリ作成は運用上の都合により別チームの方が後から作成することとなっていたので、git管理外でローカルでプロジェクトを作成し開発を進めていた。

いざ、作成された空のgitリポジトリに、開発したプロジェクトを入れようと思った時にいろいろ手間取ったので記録を残しておく。

##環境
・SpringToolSuite [Version: 3.9.2.RELEASE]
・SourceTree [Version: 2.4.8.0]
・GitHub

##ゴール
以下の2通りを試しましたので、それぞれの手順を記載します。

①リポジトリの配下にプロジェクト
プロジェクト「test-project1」とプロジェクト「test-project2」がリポジトリ配下に存在する
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/6bc25d85-3d90-2947-9d70-4267d98fca9c.png)


②リポジトリ＝プロジェクト
リポジトリがプロジェクトのルートディレクトリになっている感じです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/83af1933-3a2e-55d7-181e-98f20fbc7b1f.png)


##共通手順
ミスったときのために対象プロジェクトをzip等でコピって退避しておく

０．空のリポジトリ（READMEあるけど）がある【GitHub】
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/8c7de98d-d11d-30f4-9981-3a309abdb1c1.png)


##手順（①リポジトリの配下にプロジェクト）
１．リポジトリをクローンしてくる【SourceTree】
　　※必要に応じてブランチを切り替えること
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/e87fc840-4e11-c99d-bc29-640e84fc833a.png)

２．「Add an existing local Git repository」でリポジトリを追加【STS】
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/c2b8ac96-662d-3add-47d4-9cba0b5ccd48.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/e88c9244-03ed-71f5-b18b-37c5a5e0f3f4.png)

３．追加対象のプロジェクトを 右クリック>Team>Share Project【STS】
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/16c3cb5a-add5-2ece-a525-b3e1a9b27cea.png)

[リポジトリ名]がつきました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/ce362ea9-d826-523e-6de4-64c364502e0e.png)

リポジトリのディレクトリを見てみると入ってるのがわかります
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/4309a4e7-990c-15cb-5c76-e614134a95f3.png)

４．プロジェクトのコミットとプッシュ【SourceTree】
　手順３でリポジトリ配下に移動されたので作業コピーに表示されています。
　ステージングしてコミット、プッシュしましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/00e378de-4674-7a70-5b25-438e46b8b2eb.png)
　★デフォルト？だと「.gitignore」の除外設定に「.project」が入っているので、「.project」がコミット対象になりません。必要に応じて除外設定を修正してください。※これがないと追加したプロジェクトがプロジェクトとして扱われません。

５．おわり
githubでみるとプロジェクトが配下に入ってることが確認できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/516b4429-27e9-ab95-23c9-4ca8512570e2.png)

複数のプロジェクトを１つのリポジトリにぶら下げる時は同様の手順で追加すればよさそうです。


##手順（②リポジトリ＝プロジェクト）
１．対象プロジェクトをgit管理（ローカルリポジトリ）にします。【SourceTree】
　SourceTreeからターミナルを起動して、
　対象プロジェクトのルートディレクトリに移動し「git init」と叩きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/545a2e79-3627-92e2-417b-ea73e02bacbc.png)

２．SourceTreeに、git管理（ローカルリポジトリ）にしたプロジェクトを追加します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/f36419cd-ac81-4f85-f688-c7878ba9b9dc.png)

３．ローカルリポジトリにプロジェクトをコミットします。
　プッシュはしません。（この時点では紐付いているリモートがないです）
　※「.gitignore」の除外設定を必要に応じて修正してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/47f684e0-281b-d6e5-6ab2-4d8f74e86d35.png)


４．ローカルリポジトリにしたプロジェクトを、リモートリポジトリに紐付けます。
　設定を押下
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/096c70bb-eb0c-7edb-e7a1-dad62100acd4.png)
　リモートタブで「追加」を押下
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/1fb3590c-c1ab-86bb-3beb-e68bfe1d7ed3.png)
　リモートリポジトリの情報を入れます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/876a2299-e3a2-9a87-f16c-5d6a1b7577ef.png)
　追加されました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/cac3e36f-fb8b-bab6-4910-9b10a3e83855.png)

５．紐付けたリモートリポジトリにプッシュします。
　プッシュ先を紐付けたリモートリポジトリにして、
　リモートブランチを任意のリモートブランチにします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/53b0f4ec-5db4-e36c-ba60-247f001e4635.png)

６．おわり
githubでみるとリポジトリがプロジェクトの内容になっていることがわかります。
※gitignoreいじり忘れました
![image.png](https://qiita-image-store.s3.amazonaws.com/0/244841/83af1933-3a2e-55d7-181e-98f20fbc7b1f.png)


##あとがき
7年くらいSEやっててこんなことで躓くとは恥ずかしい・・・。
でも、こういうことした経験が今までなかったのも事実。
いままでは既存リポジトリやプロジェクトが存在するところから、それに対して改修するってパターンが多かったので。。
よい経験となった。