GithubにTerminalからプロジェクトをcommit, pushする

# まえがき

## この記事について
この記事では、
作成したプロジェクトをGithubのリポジトリに登録し、TerminalからGithubにcommit, pushする方法を説明します。

プロジェクトを初めてgithubに登録する場合は、
[1: 作成したプロジェクトをGithubに登録する](#1: 作成したプロジェクトをGithubに登録する) を、
既にリポジトリを登録したプロジェクトの２回目以降の変更点の更新は
[2: 既にリポジトリを登録したプロジェクトの変更をcommit,pushする](#2: 既にリポジトリを登録したプロジェクトの変更をcommit,pushする) を、見てください。

## この記事の読み方

>[プロジェクト名].git 
>↓
>MyProject.git

上記のように自分で書き換えてください

## 下準備
* Githubに登録しておく: [Github.com](https://github.com/)
* 既に作ったプロジェクトがある

## 環境
* macOS

<a name="1: 作成したプロジェクトをGithubに登録する"></a>
# 1: 作成したプロジェクトをGithubに登録する
この操作は新しく作成したプロジェクトをGithubに登録する際に毎回必要です。
githubから新規のリポジトリを登録し、最初のcommitとpushまで説明します。

この操作を行う頻度は多くないと思います。
毎回このようなマニュアルを見ながらやることをおすすめします。
（所要時間： ５分）
 
## 1-1: Githubでリポジトリを作成する

ここはブラウザでの作業です。
Githubにログインした状態で、New Repositoryを作成します。
（ここからでも作成できます。[https://github.com/new](https://github.com/new)）

![image](https://qiita-image-store.s3.amazonaws.com/0/123416/3e3f5c94-6a6e-3817-2ed5-22c943818b22.png)

↓ `Create repository`します

![image](https://qiita-image-store.s3.amazonaws.com/0/123416/13572d11-bd8f-5439-c4db-31cad4be52a3.png)

この画面までで、ブラウザの作業は終了です。
あとでこの画面上のurlを使うので、このままにして、次はTerminalに移ります。

ちなみにリポジトリとは、ファイルやディレクトリの状態を記録する場所です。
変更履歴を管理したいディレクトリをリポジトリの管理下に置くことで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。

## 1-2: Terminalで作業するディレクトリまで移動する。
Terminalで作業するときは、その対象のディレクトリまで移動する必要があります。
たとえば、デスクトップにプロジェクトを作った場合は、
> /Users/[username]/Desktop/[プロジェクトを内包しているフォルダ名]

というディレクトリにいる必要があります。

まず、Terminalを開きます。

`cd`と入力後、移動したいディレクトリのパスを入力します。

ディレクトリのパスが分からない場合は、Finder上のフォルダをドラッグ&ドロップするとそのディレクトリのパスが自動で入力されます。

```ruby:Terminal
$ cd /Users/[username]/Desktop/[project-name]
```

上記はデスクトップ上に、プロジェクトのディレクトリがある場合のコマンド例です。

## 1-3: gitのユーザ設定

```ruby:Terminal
$ git config --global user.email [Githubに登録したemail-adress]
```

## 1-4: gitの初期化

```ruby:Terminal
$ git init
```

## 1-5: 変更ファイルをadd
addとは、変更したファイルのcommitするための準備です。
`.`(ドッド)と打つと、自動的にすべての変更されたファイルをaddの対象にできます。
`add`と`.`の間にはスペースが必要です。

```ruby:Terminal
$ git add .
```

## 1-6: 変更ファイルをcommit
実際に変更されたファイルを、変更点として、ローカルリポジトリ登録します。
`-m`以降に`"`(クォーテーション)でくくったcommitメッセージを書きます。

```ruby:Terminal
$ git commit -m"[ここに変更点を書く]"
```

commitが成功すると以下のようなlogがTerminalに出力されます。

```ruby:Terminal
$ git commit -m"[変更メッセージ]"
[master [commit_id]] [変更メッセージ]
2 files changed, 74 insertions(+)
create ...
...
...
$
```

ここまででローカルに変更点が登録されました。

## 1-7: リモートリポジトリの登録
プラウザでgithub.comで最初にNewリポジトリを作成した際に発行されたurlを使います。
写真のテキストフィールドにある`https://`から始まる文字列です。
![image](https://qiita-image-store.s3.amazonaws.com/0/123416/f60bfec2-3c0a-7c68-c900-efa5a25de3f9.png)


```ruby:Terminal
$ git remote add origin [Newリポジトリのurl]
```

## 1-8: 変更点をpush
いよいよpushです。
commitでローカルに登録した変更点をリモートにも反映させます。

```ruby:Terminal
$ git push origin master
```

変更点が多いとその分時間がかかります。耐えましょう。
以下に成功例を示しておきます。
最終行に`$`が表示されカーソルが点滅していたら、push完了の証です。

```ruby:Terminal
$ git push origin master
Counting objects: 71, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (65/65), done.
Writing objects: 100% (71/71), 1.58 MiB | 472.00 KiB/s, done.
Total 71 (delta 6), reused 0 (delta 0)
To https://github.com/[Github-username]/[project-name].git
 * [new branch]      master -> master
$ 
```

以上が新しく作成したプロジェクトをGithubに登録する方法でした。

<a name="2: 既にリポジトリを登録したプロジェクトの変更をcommit,pushする"></a>
# 2: 既にリポジトリを登録したプロジェクトの変更をcommit,pushする
2回目以降のcommit,pushについて説明します。

この操作は比較的簡単です。覚えてしまうことをおすすめします。
（所要時間: 1分）

## 2-1: Terminalにて、プロジェクトのディレクトリに移動
cdコマンドで移動します。
分からない方は上記、手順1-2を参照してください。

```ruby:Terminal
$ cd /Users/[username]/.../.../[project-name] // これは例
```

## 2-2: 変更ファイルをadd
詳細は手順1-5を参照してください。
スペースをお忘れなく。

```ruby:Terminal
$ git add .
```

## 2-3: 変更ファイルをcommit
詳細は手順1-6を参照してください。

```ruby:Terminal
$ git commit -m"[どこどこを変更しました]"
```

## 2-4: 変更点をpush
詳細は手順1-8を参照してください。

```ruby:Terminal
$ git push origin master
```

２回目以降の手順は以上です。

#まとめ
忙しい人のためにコマンドだけまとめました。

## 1: 作成したプロジェクトをGithubに登録する

```ruby:Terminal
$ cd .../.../.../[project-name]
$ git config --global user.email [Githubに登録したemail-adress]
$ git init
$ git add .
$ git commit -m"変更メッセージ"
$ git remote add origin [NewリポジトリのURL]
$ git push origin master
```

## 2: 既にリポジトリを登録したプロジェクトの変更をcommit,pushする

```ruby:Terminal
$ cd .../.../.../[project-name]
$ git add .
$ git commit -m"変更メッセージ"
$ git push origin master
```

以上です。簡単ですね:D

分からないところ、変なところ、あったらコメントください。