Gitの設定やあれこれ

## はじめに  
Windows10におけるGitの導入と使用するコマンドについてまとめる  

## インストール手順  
日本語パックのアドインを追加することでUIを日本語化させる

1. Gitのダウンロード  
    [サイト](https://git-scm.com/downloads)に移動してWindowsを選択  
    ![2020-12-20-14-22-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/1f855266-6a40-302d-c15a-252e43525db9.png)

    
1. インストール  
    1. インストール先の選択  
        任意のパスを選択  
        ![2020-12-20-14-29-22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/46608c60-158a-79fa-827f-5b786f1914a3.png)

    1. コンポーネントの選択  
        特に変更なし  
        ![2020-12-20-14-31-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/2dda837f-b845-4a68-a246-8d44dfc96309.png)

    1. スタートメニューフォルダの選択  
        特に変更なし  
        ![2020-12-20-14-33-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/3249e1ef-da5a-e7ae-9d4c-94a22dbb766f.png)

    1. デフォルトエディタの選択  
        VSCodeに変更  
        ![2020-12-20-15-34-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/802a7b79-ec20-4752-8d2d-8e75a6b02324.png)

    1. 初期ブランチ名の調整  
        特に変更なし  
        ![2020-12-20-15-58-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/ff830ce7-77d7-1da9-56bb-90b01bf164ab.png)

    1. PATH環境の調整  
        特に変更なし  
        ![2020-12-20-15-59-38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/15aa5439-314f-dfe0-c3b0-fcbde700ea28.png)

    1. HTTPS通信に使用するライブラリの選択  
        特に変更なし  
        ![2020-12-20-16-02-48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/47bd5024-e064-8cf0-2881-f0cac7ad99b8.png)

    1. 改行文字コードの設定  
        特に変更なし  
        ![2020-12-20-16-12-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/168ed80d-e199-fce4-446f-dfc29f9f5eff.png)

    1. コンソールの設定  
        特に変更なし  
        ![2020-12-20-16-13-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/9976662f-7bb5-05d1-218c-64f2fbd4a9ea.png)

    1. `git pull`コマンドの設定  
        特に変更なし  
        ![2020-12-20-16-27-35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/485ba3fd-e847-7cbe-8fc9-350b50b83374.png)

    1. 認証管理の設定  
        特に変更なし  
        ![2020-12-20-16-33-30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/5c677d2d-c0a2-dbce-0ed6-28715802ff47.png)

    1. 追加オプションの設定  
        特に変更なし  
        ![2020-12-20-16-40-47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/f47282dd-0090-b5b2-bcd1-6255d5bdcdfb.png)
    1. 実験機能の使用するかの設定  
        特に変更なし  
        ![2020-12-20-16-45-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517181/f1e67d4c-3e67-cd17-a0c9-9dfba723e9ce.png)


## 初期設定
### アカウント名・メールアドレスの設定
```
git config --global user.name "ユーザー名"
git config --global user.email メールアドレス
```
### アカウント名・メールアドレスの確認
```
git config --global user.name
git config --global user.email
```

## コマンド  
### ローカルリポジトリの初期化
```
cd 対象のフォルダパス
git init
```
### ステージングエリア関する操作   
```
# ステージエリアへの一括追加
git add パス
# ステージエリアへのワークツリーから削除したことも含めて追加
git add -a パス
# ステージエリアへの.gitignoreで対象外としているファイルも追加
git add -f パス
# ステージエリアの変更をコミットする
git commit
# ステージエリアへの一括追加取り消し
git reset HEAD
# ステージエリアへの対象ファイル追加取り消し
git reset HEAD [File Name]
# 対象のファイルを削除
git rm [File Name]
# 既存ファイルのリネーム
git mv [Old File Name] [New File Name]
```

### リモートリポジトリからのローカルに関する操作  
```
#リモートリポジトリをローカルに複製する  
git clone URL
# リモートリポジトリパスの確認  
git remote -v
# リモートリポジトリパスの設定
git remote set-url origin [URL]
# リモートリポジトリパスにローカルリポジトリを紐づけ
git remote add origin リモートリモートリポジトリ.git
```
### リモートリポジトリにローカルリポジトリの変更を登録  
```
# git push リモート名　ブランチ名
git push -u origin master
``` 
### ローカルリポジトリに関する操作
```
# ローカルリポジトリの状態を確認する
# ステージングに追加している状態なども確認
git status
# 現ブランチの確認
git branch
# ブランチの作成
git branch ブランチ名
# ブランチを切り替える
git checkout ブランチ名
git switch ブランチ名
# コミット前のカレントパスからの一括差分取り消し
git checkout .
git restore .
# コミット前の対象ファイル差分取り消し
git checkout [File Name]
git restore [File Name]

``` 
### コミット内容をまとめる
```
# 例. HEADから3番目をまとめる
# 1. HEADから3番目を編集
git rebase -i HEAD~3
# 2. pickからsquashに変更
pick aaaa
squash bbbb
squash cccc
```

## 管理外ファイルの設定
リポジトリに管理しないファイルの設定方法を記載する
### `.gitignore`ファイルを作成する
管理外設定したいフォルダに`.gitignore`ファイルを作成する  
ルートにだけでなく、任意のフォルダ毎に作成可
### コメントの記載
`#`で始まる行はコメントとして扱う
### 特定の拡張子を無視する
```
*.res
*.obj
*.exe
```
### フォルダを無視する
```
.vs/
```
### 特定のファイルを無視しない
```
!/*/main.exe
```

## Commit ルール
- 1行目
    - fix   ：バグ修正
    - add   ：機能追加
    - update：機能修正
    - remove：削除
- 2行目
    空白
- 3行目
    詳細