「GitHubのアカウント作ったけど、どうしたらいい？」(Windows, Mac, Linux)

表題のような質問をよく受けるので、記事にしてみました。
この記事を読み進めれば、ローカル環境でコードを書き、GitHubにアップロード(プッシュ)することができるようになります。
#この記事で解説する内容
- Gitとは
- GitHubとPCの接続
- 開発環境の構築

# 前提
- GitHubのアカウントを作成済みであること。
- ブラウザで[github.com](https://github.com/)にサインインできること。

#Gitとは？
GitHubは、Gitをベースにした開発環境です。Gitはファイルのバージョン管理ツールで、「バージョンごとにバックアップを取っておきたいが、最新のものがわからなくなるのは嫌だ」という方におすすめです。

#Gitがよくわからん
Gitの勉強におすすめなコンテンツについては、後ほど説明します。とりあえず、初期設定をしましょう。

#Windows・Macの場合
**GitHub Desktop**という公式ソフトがおすすめです。

##インストール
[GitHub Desktopのダウンロードページ](https://desktop.github.com/)からソフトウエアをダウンロードし、インストールします。私がやってみた時は、管理者権限は不要でした。
念の為、Gitもインストールしておきます。[Gitのダウンロードページ](https://git-scm.com/downloads)
こちらも管理者権限は不要でした。

##サインイン
インストールして立ち上げると、GitHubへのサインインを求められるので、サインインします。

##おしまい
これで初期設定は終わりです。簡単すぎる...

ここまでの内容+αの内容が、公式のドキュメントに画像つきでわかりやすく載っていたので、リンクを張っておきます。
[GitHub Desktop を使った最初のリポジトリ作成方法 - GitHub Docs](https://docs.github.com/ja/desktop/installing-and-configuring-github-desktop/creating-your-first-repository-using-github-desktop)

#Linux(Debian系)の場合
Linuxの場合はターミナル上での作業になります！最後まで頑張りましょう！！
※UbuntuもDebian系です

##Gitのインストール
以下のコマンドを実行します。

```bash
$ sudo apt-get install git
```

##SSH接続
GitHubとPCをSSH接続という方法で接続します。SSH接続がなにか気になる人は[こちら](https://www.kagoya.jp/howto/rentalserver/ssh/)の記事を読んでみてください。
ざっくりいうと、暗号化された状態で、PCとサーバーの間で通信する仕組みになります。
SSH接続には、「公開鍵」と「秘密鍵」と2つが必要になるので、これを作成します。
「公開鍵」単体なら公開しても大きなリスクはありませんが、**<font color="red">「秘密鍵」は絶対に公開してはいけません！</font>**

またもやわかりやすい記事を見つけたので、ご紹介します。
[お前らのSSH Keysの作り方は間違っている](https://qiita.com/suthio/items/2760e4cff0e185fe2db9)
タイトルからして、「ん？これは、、、もうSSH接続しちゃってる人向けの記事なのか...?」と思われるかもしれませんが、ご安心を。初SSH接続の方でもこの記事のとおりにすればSSH接続が可能です。

#開発環境
とりあえずGitHubにはつながったけれど、エディタ選びに困っているそこのあなた！
私のオススメは**Visual Studio Code**です。
無料で使えて、しかも動作が軽いです。
[ダウンロード](https://code.visualstudio.com/)

#Gitってなんぞや？
Gitはバージョン管理ツールのことです。
資料作成時に、日付をファイル名の末尾のつけて保存することでバックアップを取っていませんか？そのように、Gitは「◯月◯日△時△分に、〜を変更したぜ」というように、ファイルの変更履歴を残すことができます。また、いつでもその時のファイルを復元することができます。
さらに、複数人で同じファイルを編集している時、Gitはいい感じにそれぞれの変更をまとめてくれます。
Gitは1人で使っても、チームで使っても便利なツールです。

Gitはややクセの強い概念を持っていますが、それを自分のものにしてしまえばファイルの管理が一気に楽になります。

だいたいこんなイメージです。
![Gitについてp1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1172197/c7f8fd9b-5a71-ce9b-6dda-d8613ee15407.png)



##ローカルリポジトリとリモートリポジトリ
マシン上に保存してあるリポジトリ（フォルダ）を**ローカルリポジトリ**、GitHubなどのサーバーにおいてあるリポジトリ（フォルダ）を**リモートリポジトリ**と呼びます。
基本的には、初回時にリモートリポジトリのデータをマシンにコピー(Clone)して、ローカル上で編集し、リモートリポジトリに上げる(Push)する（誰かがリモートリポジトリを変更していた場合は、データをダウンロード(pull)する）という流れです。
コマンドで操作する場合は以下のようになります。(`XXXXXX`の部分は人によって異なります。）

```bash
$ git clone XXXXXX.git #クローン

$ git push -u origin XXXXXX #プッシュ

$ git pull #プル
```

![Gitについてp2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1172197/ea6bb1c6-58ef-f818-1c58-3e249460a1cc.png)


##add・commit
Gitでバージョンを残すには、どこを変更したのか（あるいは、どこを追加・削除したのか）を明確にした上で（以下のコマンドの`<COMMENT>`に当たる部分）、`commit`という作業が必要になります。そして、`commit`をするためには`add`を行う必要があります。
コマンドで操作する場合は以下のようになります。

```bash
$ git add <FILE_NAME> #FILE_NAMEをadd

$ git add . #すべてのファイルをadd

$ git commit -m <COMMENT> #コメント付きでコミット
```

![Gitについてp3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1172197/d08e3c23-d3fd-c4f3-d93e-eee9a00f4514.png)

# Gitが学べるコンテンツ

- [git入門 (全22回) - プログラミングならドットインストール](https://dotinstall.com/lessons/basic_git)

定番の、3分動画で学べる「ドットインストール」です。動画ではLinuxのターミナル上で操作していますが、Win/MacでGitHub Desktopを使用する方も、Gitの概念をわかりやすく説明してくれているのでおすすめです。
※「Git入門」レッスンは無料で視聴できるようです。(2021/4/28現在）

#おわりに
もし、周囲に「GitHubのアカウントを作ったけれども使い方がわからない」という方がいれば、この記事をご紹介していただければ幸いです。

この記事で使用したスライドは[GitHub](https://github.com/r-40021/what_is_git)で公開しています。