🔰5分だけ努力するGit

## はじめに
アウトプットと備忘録のため、Gitの知識を同じ初心者に向けて投稿していきます。
本稿は作成したプロジェクトをGitHubのリポジトリにプッシュするまでを行います。

## 準備
Visual Studio CodeとGitのインストール：https://chigusa-web.com/blog/vs-code-install/
GitHubのアカウント登録：https://github.com/join

## 目次
1. Gitの基礎知識
2. ローカルリポジトリ作成→最初のコミット
3. 新規追加したファイルをコミットする
4. リモートリポジトリ作成→プッシュ

### 1. Gitの基礎知識
混乱しやすい用語のそれぞれの役割をまとめます。
・ローカルリポジトリ：自分のPC上のリポジトリ(情報の貯蔵庫)
・リモートリポジトリ：サーバー上のリポジトリ(GitHubなどのソースコード管理サービスが提供)
・コミット：変更したファイルやディレクトリをローカルリポジトリに記録すること
・プッシュ：ローカルリポジトリの変更内容をリモートリポジトリに反映すること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475740/cec4d9cc-8b3c-922a-a720-085ff2cf4a62.png)


### 2. ローカルリポジトリ作成→最初のコミット
VSCodeを起動し、作成したプロジェクトを開いた状態で新規ターミナルを立ち上げ、「＋」ボタンの右側からGit Bashを起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475740/a4773e11-7b69-8a1d-7ff9-8253cf860978.png)
起動したら以下のコマンドを実行します。
```
$ git init
```
エクスプローラーからプロジェクトのディレクトリを確認すると.gitというディレクトリが作成されました。
これがこのプロジェクトのローカルリポジトリになります。

今回はプロジェクト下に以下のファイルを作成しコミットしたいと思います。
```txt:study.txt
Hello Git!
```
ファイルを保存したらターミナルから以下のコマンドを実行します。
```
$ git status
```
このコマンドは、作業ディレクトリとステージングエリアの状態を確認するコマンドです。
ステージングエリアとは、次にコミットするファイルを置いておくエリアのことです。(インデックスとも呼ばれます)

実行するとこのような結果になりました。
```
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        study.txt

nothing added to commit but untracked files present (use "git add" to track)
```
新規追加したファイルがあるよ
ステージングエリアに追加するには`git add ファイル名`コマンドを使ってね
というようなことを言ってます。

`git add`コマンドを使ってステージングエリアに追加してもよいのですが、最初のコミットを修正する場合に踏まないといけない工程が多いため、空コミットなるものをしていきます。
(参照：https://qiita.com/NorsteinBekkler/items/b2418cd5e14a52189d19)

```
$ git commit --allow-empty -m "first commit"
```

--allow-emptyオプションは空のコミットを許可する機能で、-mオプションはコミットメッセージを追加する機能です。
今回は"first commit"というメッセージで空コミットしています。


### 3. 新規追加したファイルをコミットする
次に、作成したファイルをステージングエリアに追加し、コミットしていきます。
実行コマンドは以下の通りです。
```
1. study.txtをステージングエリアに追加
$ git add study.txt

2. ステージングエリアに追加されたか確認　→　new file: study.txtと表示される
$ git status

3. ローカルリポジトリにコミット　→　1 file changed, 1 insertion(+)と表示されると成功
$ git commit -m "second commit"
```
※変更した全ファイルをステージングエリアに追加する場合`git add .`コマンドを使用します。

### 4. リモートリポジトリ作成
GitHubを開き、ダッシュボードからNewボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475740/e0e72e87-c2dd-cf95-3ccc-1b8db6dfd167.png)

リモートリポジトリの名前、Public(全ての人に公開)かPrivate(自分と許可されたユーザーのみアクセス可)の設定をし、リポジトリを作成します。
![git-cap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475740/5e2aaabd-b04b-0a92-cb77-4eac90dada12.png)

作成したら次の画面が表示されます。
先ほど`git init`コマンドでローカルリポジトリを作成しているため、VSCodeに戻り青枠で囲まれたコマンドをターミナルで実行します。
![git-cap2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475740/dbd9f2ca-2b90-0455-db42-c1f258a8289c.png)

各コマンドの意味は以下の通りです。
```
$ git remote add origin https://github.com/GitHubアカウント名/リモートリポジトリ名.git
→ 現在のローカルリポジトリに指定したリモートリポジトリを追加する

$ git branch -M main
→ 現在のブランチをmainという名前に変更する

$ git push -u origin main
→ 変更したファイルやフォルダをoriginというリモートリポジトリのmainブランチにプッシュする
```
ブランチとは意味の通りプロジェクトの***枝***の役割で、プロジェクトの根幹に影響を及ぼさないように枝分けする機能です。

コマンドを実行出来たらGitHubに戻り、リロードすると以下の画面に変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3475740/afb18556-ac90-061c-9945-cf1efeaf1017.png)

study.txtがプッシュされ、ブランチ名や追加された時の"second commit"というコミットメッセージ、コミットした時間などが表示されていますね。

今回は以上となります。
勉強するべきことが多すぎて義務的になりがちですが、小さい「できた！」は素直に嬉しくて楽しいことなので、これから一緒に勉強していけたらなと思います。
私も頑張ります。

拙い文章でしたが、ここまで読んでいただきありがとうございました。