【2021年版】Git入門者が1日目に覚えるべき操作まとめ

#はじめに
チーム開発で必要とされる最低レベルのGit操作を少しの説明を交えて解説していきます。
GitHubと連携してチームでソースコードを管理できるのは知ってるけど、それより先は。。。っていうぐらいの理解度の方が対象者です。

#準備
###gitのインストール
説明してくれているサイトが多くあるので、自分でググったり以下のサイトを参考にするといいと思います。
macユーザー：https://tracpath.com/bootcamp/git-install-to-mac.html
windowsユーザー：https://www.kkaneko.jp/tools/win/git.html
パスも通り、以下のコマンドを打ってバージョンが表示されればOKです！

```
$ git --version
git version 2.26.1
```
###GitHubアカウントの登録
未登録の方は、以下から登録しましょう。
https://github.com/

#初期設定
gitのインストールとGitHubアカウント取得が完了したら、gitにユーザーを登録します。これを行わないと、GitHubアカウントと連携することができません。
以下のコマンドでユーザー名とメールアドレスを登録しましょう。**GitHubアカウントとの連携はメールアドレスで行っているため、同じものを登録しましょう。**ユーザー名もわかりやすく同じものを登録しておけば大丈夫です。

```
$ git config --global user.name "<ユーザー名>"
$ git config --global user.email "xxxx@example.com"
```
登録が完了したら、確認してみましょう。
こちらのコマンドで、gitに関する設定を一覧化することができます。

```
$ git config --list
～～（略）～～
user.name=username
user.email=xxxx@example.com
```
名前とメールアドレスが記載されていればOKです！
~/.gitconfigにも設定内容が書かれているのでこちらを確認してもよいです。

#GitHubでリポジトリ作成
GitHubにログインしたら左側にリポジトリに関する場所があり、「New」を押すと新しいリポジトリを作成できます。
![create_repo.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726987/3be6d651-fbae-d893-db39-e5e0b493c0b9.png)

次に、リポジトリ名や説明を入力して、パブリックかプライベートかを選択します。インターネット上に公開してもよい場合はPublicを選択します。
図にはありませんが、「Create Repository」をクリックすれば作成完了です！
![create_repo2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726987/cc02598f-80e5-08dc-363f-539c3b324ddc.png)

#ローカルのフォルダをgitと紐づける
ローカルPCの好きな場所にフォルダを作成します。
フォルダがあるディレクトリに移動し、以下のコマンドを実行します。

```
$ git init
```
これをすることによりフォルダ直下に、git管理下であることを意味する.gitが作られます。

```
$ git remote add origin https://github.com/(username)/(reponame).git
```
ローカルとGitHubリポジトリを紐付けます。originとはリモートリポジトリのことで、今回の場合はoriginをhttps\://github.com/(username)/(reponame).gitに設定するという意味になります。

#変更内容をリモートに反映する
ローカルのファイルを変更した後、GitHubにその内容を反映させる作業を「プッシュする」といいます。ただし、その前に2つほどステップを踏む必要があります。具体的には以下の順序を踏みます。

***0.プル → （作業） → 1.ステージング → 2.コミット → 3.プッシュ***

###0.プル
ローカルで作業するときは事前に環境をリモートの最新状態と同じにしておく必要があります。

```
$ git pull
```


###1.ステージング
作業が終わったら、コミットするファイルを指定し、ステージにあげます。

```
$ git add (ファイル名)
```
ただし、特に理由がない場合は全て指定するのがいいです。
ファイル名のところをピリオドにすればファイルを全て選択できます。

```
$ git add .
```

###2.コミット
変更内容をひとまとめにすることをコミットといいます。基本的に機能単位ごとに行われます。（ボタンを追加した等）
プッシュをしたあとにやっぱり戻したいってなったときには、コミットの単位で切り戻しを行うことになるので、変更内容がわかる範囲でこまめにコミットするのが良いと思います。

```
$ git commit -m "ボタンの追加"
```
コミットする際は、変更内容がわかるようにコメントをつける必要があります。
これで誰が何をどう変更したのかが一目でわかるようになります。

###3.プッシュ
コミットの内容をリモートに反映させます。

```
$ git push origin master
```
このコマンドはorigin(リモートリポジトリ)のmasterブランチにプッシュするという意味です。
ブランチの説明はあとで出てきますので今はスルーで大丈夫です。

これで変更内容がGitHubにも反映されていることが確認できます。

#ブランチを切る
gitやGitHubではデフォルトでmasterブランチが作成されます。
本番環境に影響を与えることなく開発環境で作業したい場合や、複数人でお互いに影響を与えずに作業したい場合はmaster(本流)からブランチ（枝、支流）を作成していきます。今回は、masterを本番環境、developを開発環境としてブランチを切るところからマージするところまでやっていきます。イメージとしては以下のような感じです。

![スクリーンショット 2020-11-19 11.24.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/726987/378453af-ce52-f226-2902-d80efaba6fed.png)

###1.現在いるブランチの確認

```
$ git branch
* master
```
*がついてるのが今いるブランチです。masterからブランチを切るときはまず自分がmasterブランチにいることを確認してください。

###2.ブランチを切って、そのブランチに移動
masterブランチ上で以下のコマンドを実行します。

```
$ git checkout -b develop
Switched to a new branch 'develop'
```
developブランチが作成されたと同時にdevelopブランチ上に移動していることがわかります。

```
$ git branch
* develop
  master
```

###3.GitHub（リモートリポジトリ）と同期する

今はローカルにしかdevelopブランチがない状態なので、GitHubに同期します。

```
$ git push origin develop
```
初回のプッシュ時はGitHub上で新しいブランチが作成されます。

#さいごに
お疲れ様でした。
初日でこれぐらいできるようになれば十分です！