GitHubをはじめよう 〜アカウント作成から公開(Git Push)まで〜 【for Mac】

# 作業概要
1. GitHubのアカウントを作成
2. ローカル環境にGitがインストールされているか確認
3. GitHubでリモートリポジトリを作成
4. 作成したリモートリポジトリをローカルにクローン
5. ファイルのをインデックスにadd、ローカルリポジトリにcommit
6. commitした変更をリモートリポジトリにpush（公開）

# 事前知識
## Git、GitHubとは
> Git（ギット）は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。 - [wikipedia](https://ja.wikipedia.org/wiki/Git)

GitHubは、Gitを利用しファイルをリモートで公開・共有するためのウェブサービスです。
Gitを利用できるサービスは他にも、GitLab, BitBucket, Backlog, AWS CodeCommitなど沢山あります。
GitHubのFreeプランは、private（非公開）設定ができませんので、すべてのファイルが公開されます。（公開したくないファイルは .gitignoreファイルを利用し、ファイル管理から外すことになります）

## ローカルリポジトリとリモートリポジトリ
リポジトリとは、ファイルやディレクトリの状態を保存する場所のことです。
リポジトリの管理下に、変更履歴を管理したいディレクトリ・ファイルを設置します。

__ローカルリポジトリ__は自分のマシン内、__リモートリポジトリ__はサーバなどネットワーク上にあります。ローカルリポジトリで作業を行い、そのファイルをリモートポジトリに送信（プッシュ）することで、GitHubなどのウェブサイト上でファイルを公開・共有・管理することができます。

参照記事（もっと詳しく）→ [今さら聞けない！GitHubの使い方【超初心者向け】](https://techacademy.jp/magazine/6235)

# 1. GitHubのアカウントを作成

[GitHub](https://github.com/) のトップページにて、サインアップ
<img width="1439" alt="スクリーンショット 2018-08-02 午後2.04.59.png" src="https://qiita-image-store.s3.amazonaws.com/0/258078/24c69562-db50-2a43-0c44-c92a2e5822e3.png">

無料で使えるFreeプランを選択し、「Finish sign up」ボタンをクリック。

登録したメールアドレスに認証のメールが届きます。
メールの内容に従いユーザ認証を行い、アカウント作成は完了。

# 2. ローカル環境にGitがインストールされているか確認

まずはgitがインストールされていないか確認。ターミナルにて

```shell
$ git --version
```
以下のようにバージョンが表示されたら、インストールの必要はありません。

```shell-session
git version 2.10.1 (Apple Git-78)
```

バージョン情報が出なかった場合は、「インストール」をクリックして、「コマンドライン・デベロッパー・ツール」をインストールするか、xcodeをインストールします。
インストール完了後、コマンド`$ git --version`でバージョン情報が表示できたら成功です。

参照記事→ [Git のインストール 〜Git をMacにインストールしよう〜](http://tracpath.com/bootcamp/git-install-to-mac.html)

# 3. GitHubでリモートリポジトリを作成

GitHubにログインし、「New Repository」ボタンをクリック。次のページで以下を入力・選択。

- 「Repository name」を入力。例として`Test`とする。
- 公開設定「Public」を選択。非公開設定「private」は有料会員のサービスです。
- 「Initialize this repository with a README」 リポジトリの中にあらかじめREADMEファイルを作成する。とりあえずチェックなしでOK。

「Create repository」ボタンをクリックし、リポジトリの作成は完了。
リモートリポジトリのurlをテキストエディットなどに控えておきます。

※ GitHubでリモートリポジトリとやり取りする際のプロトコルにはhttpsとsshがあります。一般的にはsshの方がセキュアとされ推奨されています。GitHubはhttps推奨です。今回は設定が簡単なhttpsで進めます。

[GitHub Help - Which remote URL should I use?](https://help.github.com/articles/which-remote-url-should-i-use/)

# 4. 作成したリモートリポジトリをローカルにクローン
先ほど作成したリモートリポジトリを、ローカル（PC）上にクローン（複製）します。任意のディレクトリに移動してから、以下のコマンドを実行。

```shell
$ git clone [リポジトリのurl]
```
（例）

```shell
$ git clone git://github.com/schacon/grit.git
```

ローカルで管理していた既存のプロジェクトを利用する場合、initと言う方法もありますが、今回は割愛。

もっと詳しく & initについて→ [Git の基本 - Git リポジトリの取得] (https://git-scm.com/book/ja/v1/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-Git-%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AE%E5%8F%96%E5%BE%97)

# 5. ファイルをインデックスにadd、ローカルリポジトリにcommit

リポジトリで管理したいファイルを先ほどクローンしたディレクトリ以下に設置。
今回は例として`hoge.js`ファイルとします。

```shell
$ touch hoge.js
```
（例） パスはこんな感じ

```shell-session
/Users/user/workspace/Test/hoge.js
```
ファイルの作成・変更・削除の情報をインデックスにadd（追加）する
インデックスとは、リポジトリにコミットする準備をするために変更内容を一時的に保存する場所のことです。

```shell
$ git add hoge.js
```

または、すべての変更を追加するコマンド

```shell
$ git add .
```

ファイルが追加されたか確認

```shell
$ git status
```
取り消したい時（ステージング取り消し）

```shell
$ git reset
```

変更結果をローカルリポジトリにcommit（記録）する

```shell
$ git commit -m '任意のメッセージを入力 （例)add new file'
```

commitできたか確認

```shell
$ git log
```

コミットIDやコミットメッセージなどの、ログが表示されたら成功です。

# 6. commitしたファイルをリモートリポジトリにpush（公開）

ローカルリポジトリの変更を、GitHub上にあるリモートリポジトリに反映させます。

```shell
$ git push origin master
```
GitHubのユーザ名とパスワードを入力し、公開完了。
GitHubのWebページで確認しましょう。

お疲れ様でした！

もっと詳しく知りたい方は
[今さら聞けない！GitHubの使い方【超初心者向け】](https://techacademy.jp/magazine/6235)
[サルでもわかるGit入門](https://backlog.com/ja/git-tutorial/)