ローカル作業フォルダをGIT管理下においてGitHubにPUSHするまで

ある作業フォルダをGIT管理下において、ローカルでcommitした後、GitHubにコードをPUSHするまでの一連の流れのメモです。
本稿ではWindows環境で作業していますが、linuxでも同様です。

# 事前準備
## SSHキーを生成する
まだSSHキーを作成していなければ作成する

git bashにて **ssh-keygen -t rsa** を実行する

```bash
riversun@devmachine MINGW64 ~
$ ssh-keygen -t rsa
```

するとパスフレーズ等聞いてくるので指示に従い作業する

```bash
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/riversun/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/riversun/.ssh/id_rsa.
Your public key has been saved in /c/Users/riversun/.ssh/id_rsa.pub.

The key fingerprint is:
SHA256:RvPdS4JwmtibHDlxqQ+/bBVTiXXpwJoFPxiDHl8QdNU riversun@devmachine

The key's randomart image is:
+---[RSA 2048]----+
|      .ooo+*=o..o|
|     .o+ooOooo  E|
|     . .= B *..  |
|     B  ..   .   |
|     . .= B *..  |
|    ....         |
|    ....         |
+----[SHA256]-----+
```

これでキーペアが作成された。

ユーザー名を **riversun**とすると
キーペアはWindowsデフォルトでは、**C:/Users/riversun/.ssh**フォルダ以下に作成される。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/ac3847e9-d7d6-cfdb-ec82-a815a101e43b.png)

## GitHubに公開鍵（public key)を登録する
コマンドラインからgitコマンドをたたいてpushするためには、
今つくったキーペアのうち公開鍵(public key)をGitHubに登録する必要がある。

**C:/Users/riversun/.ssh**フォルダにある**id_rsa.pub**というファイルが公開鍵となる。

id_rsa.pubをテキストエディタ等で開いて、内容をコピーする

**id_rsa.pub**

```
ssh-rsa AAAGYmB75HnWdxKaWkrUkAT8kCPQQsf6UQdrBQSLjz6W4KbHJcUazwNbkziQmtwVd4PXbkD2NF
szjELxKtuS9V2HwfS8Yjjm9BNFcWhAsLkYNnUKPjGnQ27wjEhV8ZPcn5smcpRuTHdZasFWEGDEiH6smGdi
JngBrcwj9WQhA8ErhUg2ExmAWb3R9U9ch2tJTCZXhALf7B53mc6xTCrGeLb7QVGShtsLe5nLJM37ZRKrDK
utH2A4f39fe4pDkQzViLf5wWuRgHy74Y6E9FMtYgBH92MazY9L5Ys7sfphyY8HDnZhgRsTneW2iVH2HZhM
eTNGEa5x2d3mtXjigSMax9JPF77JD9rYcH5jiiVV8jUbCtLUinz6s7NHajaZsfPYUSJ4Ge7AKWLXHgpCi3
Rz3FfiVVEPRxYZJQJt9kLL8RAUh5FXtSfeBShpT7PenH9jyBkBgHz3K4FCWWtpEU8ezkB8SttjQPiLPXW4
i49ws3r85rkMwtaiK5M riversun@devmachine
```
GitHubのSSHキー登録画面に行く
https://github.com/settings/keys

[NEW SSH KEY]をクリックし、さきほどコピーした**id_rsa.pub**の内容をペーストして登録する。

これでGitHubに公開鍵が登録された。

## GITユーザー名登録
まだ、gitのユーザー名の登録していなければ、ふたたび git bash (またはコマンドプロンプト）を開いて、以下のように共通のユーザー名を登録する

```bash
git config --global user.name "riversun"
git config --global user.email riversun.org@gmail.com

```
## (Windowsならでは)改行コードを自動変換するか否か設定

Windows環境ならではだが、GITからダウンロードしたコードの改行コードを自動的に CRLF に変換したくない場合は以下のとおり。
以下のコマンドでは、このリポジトリとしての設定が変更される。

```bash
git config core.autocrlf false
```

ここまでで、事前準備のできあがり

## (Windowsならでは)「File name too long」エラーの対処

**git add**コマンドなどで、**File name too long**というエラーメッセージが出た場合は以下の方法で対処する。

管理者としてgit bash(または、コマンドプロンプト）を起動し、以下を実行

```bash
git config --system core.longpaths true
```

これで長いファイル名もGITで取り扱えるようになる。

# 作業フォルダをGIT管理下におく

## 対象となる作業フォルダをGIT管理下におく
まず、git bash（又はコマンドプロンプト）を開いてGIT管理下におきたいフォルダにいく

```bash
cd ~/mytest
```

以下のコマンドで、このフォルダがGIT管理下におかれる

```bash
git init
```

## 作業フォルダにあるファイル、フォルダをコミットする

作業フォルダ以下にあるファイルをすべてコミット候補にする

```bash
git add -A
```

コミットする

```bash
git commit -m "first commit"
```

ちなみに、上記のコミットコマンドで、ローカルに**master**ブランチが出来る

## GitHubにリモートリポジトリを作成する
まだ、GitHub側にリモートリポジトリを作っていなかったら作成する

ここでは **mytest**というリポジトリを**Private**で作った
![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/8d7fd32e-9708-5aac-3bd1-5d849a395658.png)


以下のように**[SSH]**のほうをクリックしたあと、
**mytest**リポジトリのトップ画面に表示されているURLをコピーする。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/170905/730d9039-d1b0-8156-700b-a99c424034ea.png)

```
git@github.com:riversun/mytest.git
```
がクリップボードにコピーされた状態。

## リモートリポジトリを登録する

以下のように**git remote add origin**以降に、いまコピーしたURLを貼り付け実行する。

```bash
git remote add origin git@github.com:riversun/mytest.git
```

これで、ローカルに対するリモートリポジトリ(つまりGitHub側のリポジトリ）が登録される。

## ローカルリポジトリをリモートリポジトリにPUSHする

ローカルの内容をリモートの**master**ブランチにPUSHする

```bash
git push -u origin master
```

これで、ローカルの作業フォルダが、無事、GitHubにPUSHされる。

# その他
リモートリポジトリからcloneして以降の、各種GIT作業は以下で記事にしています

**Gitの概観とコマンド（初級レベル）**
https://qiita.com/riversun/items/a3f22ba0735472f595be