ローカルで開発したプロジェクトをGithubに上げる手順

まずはgitインストールをしてください。

【プロジェクトはじめ】
# (1)githubにプロジェクトを作成する
githubでNewでリポジトリを作成。kegoなど、任意のプロジェクト名を作成します。

1. New押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/7c8537ea-953f-9042-5820-fdc889ac1173.png)
1. project名（ここではkego）を入力、publicのままでcreate repositoryを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/0938e3ed-469c-10d2-aae0-92c5311209e2.png)
1. kegoプロジェクトが作られる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/ee4e3554-4ab9-1a1b-4602-d47e9a0f744d.png)


# (2)ローカルにプロジェクトを作成してgithubにあげる
ローカルにプロジェクトを作成します。
なお、mac操作なのでwindowsの場合はpowershellを使うといいと思います。

1. プロジェクトを作成する`$　mkdir kego` ※ローカルプロジェクトとgithubに作ったプロジェクト名は別でも良いが一緒のほうがわかりやすい

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/5b778778-72cf-02c9-f091-54ecf4550443.png)
1. ローカルプロジェクトに移動`$　cd kego/`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/732ca1f2-80f3-2885-9f38-920bfbd688b2.png)
1. gitリポジトリを作成`$ git init` 
※ここでgitが登場します。gitインストールしてないと使えないので注意。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/9721a257-547d-9034-9944-f297683da64f.png)
git 管理することがはじまる
1. 適当にファイルを作成する`$　touch index.html` `$　vim index.html`

1. 以下のコードをコピーして保存する`:wq`
```
<!DOCTYPE html>
<html>
<head>
  <title>gitテスト</title>
  <meta charset="UTF-8">
</head>
<body>
  <h1>gitテスト</h1>
</body>
</html>
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/9793116b-e853-7bcb-d705-803d05e3e067.png)

1. gitリポジトリにファイルを追加する`$　git add .`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/86cb9c39-ac98-03fb-c7ca-4071991f0d55.png)

1. gitファイルをコミットする`$ git commit -m "first Commit"`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/e4d4b36a-e035-d37b-609c-fb0d88f5ba71.png)

1. 1で作成したリポジトリのURLをコピーしてリモートリポジトリに設定する`$ git remote add origin git@github.com:yutoonodera/kego.git`
今の状態だとローカルでgit管理はできているが、ローカルのkegoフォルダとgithub上のkegoプロジェクトは何も関係していないのでローカルのｋegoフォルダとgithub上のkegoプロジェクトを紐付ける
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/ff77613a-0a09-2c79-7daa-2c7a33168233.png)

1. ファイルをプッシュする `$ git push -u origin master`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/4f2fc385-377e-63c0-d4ca-3a82e4261112.png)
1. githubにソースがあげれた（=ローカルとｇithubリポジトリが連携した）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/5f2ce678-52e0-fe46-29c5-a0118d75dbd2.png)

# ※実際の状況に合わせてソースを改修してみる
実際は新たにプロジェクトを作成するよりもすでにあるプロジェクトをローカルにもってきて改修してgithubにあげる場合のほうが圧倒的に多いはずなのでその流れを書きます。

1. githubからソースをローカルに`$　git clone git@github.com:yutoonodera/kego.git`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/3ad01592-3195-87fd-367b-01baf10f23fe.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/9b8eae0f-5d4a-90ac-1a3e-50421e067433.png)
1. masterからfix/h1-textブランチを作成し、fix/h1-textに移動する`$ git checkout -b  fix/h1-text`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/8ecb7cdb-44db-6c87-39c1-8a07a8226538.png)

1. fix/h1-textブランチでソースを修正する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/6eb83b2e-9b5c-0ddf-d13d-e67f12a2350d.png)

1. gitリポジトリにファイルを追加する`$　git add .`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/dcf56fe8-8eda-f603-4eaa-f72870e68874.png)

1. gitファイルをコミットする`$ git commit -m "h1-text fix Commit"`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/0d080fa0-d9c7-aeb8-7423-0d618ecf7475.png)



1. ファイルをプッシュする `$ git push -u origin fix/h1-text`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/4e9ecb59-d427-1b07-50d4-19ecfed3180a.png)

1. githubに反映されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2522723/49e27921-2434-f94a-5473-26913a181818.png)

1. これでgit/githubを使った基礎的な改修は終わりです。このあとはgithub上でfix/h1-textブランチからmaster向けのプルリクエストを作ったりしてステージング環境や本番環境にマージしていく流れになるかと思います。