ソースコードをGithubに置く(レポジトリ作成)

# ソースコードをGithubと連携する方法

初心者の私がソースコードとGithubを連携させたときの方法を残しておきます。(mac対応)
とりあえずなんでもいいからGithubにリモートリポジトリを**初めて**置きたい方へ。

#### 0.大前提 
①Githubのアカウントは登録済みであること。
②すでに作成してある何かしらのソースコードのファイルがあること。


Githubと連携させることでリモートであるオンライン上にソースコードを保存させることができ、チーム間での開発を行うときや万が一PCが壊れてしまった場合にリモートからソースコードを取り出せます。

この準備段階と前知識を持って進めていきます。

#### 1.Githubでレポジトリを作成する
Githubの自身のホームから**Repositories**へ飛び、緑色の**New**から新規作成します。

- Repository name　→　アプリ名
- Description　→　アプリの説明等
- 公開か非公開か　→　無料会員は公開のみ
- Initialize this repository with a README　→　チェック入れなくて大丈夫
- Add.gitignoreとAdd a licenseはとりあえずNoneで


このような感じで設定し、**Create Repository**を押すと作成が完了します。

#### 2.SSHを設定する

自身のPCとGithubとのやり取りを行うために、ターミナル上でSSHキーを生成し、Githubの設定から**公開鍵**を登録する必要があります。

秘密鍵、公開鍵の生成について詳細は解説しませんが、どのような手順で行ったか残しておきます。


まず、鍵を生成するため、ターミナルにて

```
$ cd ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa): 
/Users/〇〇/.ssh/id_rsa already exists.
Overwrite (y/n)? 

```
私の場合、以前鍵の生成を行ったことがあったので上書きしますか？と聞かれました。
問題なければyで。

次にこのように書かれているかと思います。

```
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/(username)/.ssh/id_rsa.
Your public key has been saved in /Users/(username)/.ssh/id_rsa.pub.
```

パスワードは設定する必要がなければ、エンターで飛ばして大丈夫です。
これで鍵が生成されました。

その後Githubに戻り、こちらから生成された鍵を設定していきます。
https://github.com/settings/ssh

緑色の**New SSH Key**ボタンを押すと
**Title**と**Key**を埋める項目があるので

- Title→適当な名前。わかりやすく自身のPCの*MacBook*など。私は*test*と書きました。
- Key→ここに生成されたSSH(公開鍵)をペーストする。


※ターミナルで以下の方法からSSHキーをコピーできます。そのまま貼り付けすればOK。

```
$ pbcopy < ~/.ssh/id_rsa.pub
```

補足として
**id_rsa.pub**の部分はターミナルで
`Your public key has been saved in /Users/(username)/.ssh/id_rsa.pub.`
と言われたところの、最後尾の名前のことです。



これで、**Add SSH Key** を押下し、Githubに公開鍵を設定するのは完了です。

次に難しいところでもありますが、SSHのConfigファイルの中身を編集する必要があります。

```
.SSH 〇〇$ vi config
```
*vi config*でエンターを押すと、画面が切り替わるかと思います。

**a** を押下し、INSERTモードに入ってください。（編集ができる)
そして、以下を入力。

```
Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa 
  User git
```
**escape** を押し **:wq** で内容を保存します。

ちなみに
**id_rsa.pub.** は公開鍵で
**id_rsa** が秘密鍵のことです。
この秘密鍵をConfig内に保存する作業をしました。

これで秘密鍵、公開鍵のやり取りは完了です。


設定されているかの確認作業としてターミナルで

```
$ ssh -T git@github.com
```

そして先ほどパスワードを設定した方はパスワードを入力して

```
Hi (Githubのユーザーネーム)! You've successfully authenticated, but GitHub does not provide shell access.
```
と出たら成功です。


#### 3.早速、ソースコードをGithubへ(リモートへのpush)

ここからはターミナル操作のみです。

```
$ git config --global user.name "(Githubのユーザーネーム)"
$ git config --global user.email (Githubの登録アドレス)
```

コマンドラインでアプリのファイルまで移動します。

例として、デスクトップ上のファイルと連携させます。
一応、

```
$ ls
```
でファイルの中身を確認してください。

xcodeでのソースコードなら
**.xcodeproj** 拡張子のファイルがあることが確認できます。

ここまで出来たら
最後に、README.mdを追加し、コミット、プッシュします。
↓はgithubでレポジトリを作成直後に登録の仕方が載っているのをそのまま載せました。
その通りやってみてください。

```
$ echo "# (ファイル名)" >> README.md
$ git init

$ git add README.md
$ git commit -m "(コミットする際のメッセージ、何を追加したかなど)"
$ git remote add origin git@github.com:(Githubのユーザーネーム)/(ファイル名).git
$ git push -u origin master
```

そうすると

`Branch 'master' set up to track remote branch 'master' from 'origin'.`

と、リモートブランチであるmasterへの更新がされ、
Githubにてコミットメッセージと共に反映されていることがわかるかと思います。

以上です。


多少、Gitの知識はあるためコマンド一つ一つやっていることは把握しながらやりました。