UdemyのGit講座で概念を仕組みを学んで自分用の「gitコマンド辞書」としてまとめてみた

##はじめに
この記事はUdemyのGit/Githubの講座を受けて、自分用の「gitコマンド辞書」としてまとめたものです。

流れや裏側の仕組みをもっと知りたいと思う方は下の講座を受けてみてください。

『Git：はじめてのGitとGitHub』は無料ですので気軽に覗いてみることもおすすめです。

Git： もう怖くないGit！チーム開発で必要なGitを完全マスター
https://www.udemy.com/share/101WYWAEcZdF5UR3kB/

Git：はじめてのGitとGitHub
https://www.udemy.com/share/101vBkAEcZdF5UR3kB/

##gitのインストール/バージョン確認(version)
```
git version
```
##gitのインストール方法
Macにはデフォルトで入っているが、入ってない場合は下のURLを参考に
https://www.atlassian.com/ja/git/tutorials/install-git

##gitの初期設定(config)
```
git config --global user.name "githubで登録したユーザーネーム"
```
```
git config --global user.email githubで登録したメールアドレス
```
```
//atomエディターの場合
git config --global core.editor "atom --wait"

//VSCodeエディターの場合
git config --global core.editor "code --wait"
```

##git初期設定の確認(config)
```
git config user.name
```
```
git config user.email
```
```
git config core.editor
```
```
//いっぺんに確認したい場合
git config --list
```
##コマンドにエイリアスをつけて短縮する(config)
```
//commitコマンドをciで呼び出せる
git config --global ailas.ci commit

//statusコマンドをstで呼び出せる
git config --global ailas.st status

//brachコマンドをbrで呼び出せる
git config --global ailas.br branch

//checkoutコマンドをchで呼び出せる
git config --global ailas.ch checkout
```
- git configは設定を変えるようなコマンド


##ローカルリポジトリーの新規作成(init)
```
git init
```
 - initializeの略。初期化。  
.gitディレクトリが作成される


##gitリポジトリーのコピーを作成する(clone)
```
git clone <リポジトリー名>
```

##変更をステージに追加する(add)
```
git add <ファイル名>
git add <フォルダー名>
git add .
```

##変更を記録する(commit)
```
git commit -m "<メッセージ>"

//コミットの変更内容をみることができる
git commit -v
```
- メッセージの例 
"initial commit"


##現在の変更状況を確認(status)
```
git status
```

##変更差分の確認(diff)
```
git diff
git diff <ファイル名>

//git addしたあとの変更分
git diff --staged
```
- qコマンドで終了

##変更履歴の確認(log)
```
git log

//１行で表示
git log --oneline

//表示するコミット数を制限する
git log -n <コミット数>
```
- コマンドを終了するときにはqコマンド


##ファイルの削除(rm)

```
git rm <ファイル名>
git rm -r<フォルダー名>

//gitからは消したいけどファイルを残したいとき
git rm --canched <ファイル名>
```

##リモートリポジトリーへ送信(push)
```
git push origin <ブランチ名>
```

##ファイルへの変更を取り消す(checkout)
```
git checkout -- <ファイル名>

git checkout -- <ディレクトリ名>

//全変更を取り消す
git checkout --.
```
##git addした変更を取り消す(reset)
```
git reset HEAD <ファイル名>
git reset HEAD <ディレクトリ名>

//全変更を取り消す
git reset HEAD .
```
##直前のコミットをやり直したいとき(--amend)  ※pushしたコミットはできない
```
git commit --amend
```
##リモートリポジトリを表示(remote)
```
git remote

//URLを表示
git remote -v
```
##リモートリポジトリーを新規追加する(remote add)
```
git remote add origin <githubのリポジトリーのURL>
```
##リモートの詳細を表示(show)
```
git remote show origin
```
##リモート名の変更(rename)
```
git remote rename <旧リモート名> <新リモート名>
```
##リモートの削除(rm)
```
git remote rm <リモート名>
```
##リモートリポジトリから情報を取得する(fetch)
```
git fetch <リモート名>
```

- リモートのコピーちょうだいって言う
- ローカルとの差分を見つつ、リモートリポジトリが変更や新規ブランチをリモート追跡ブランチに渡す
- リモート追跡ブランチが更新される  ※リモート追跡ブランチはあくまでもリモートのブランチの状態を示すもので、ユーザー自身がブランチの内容を変更することはできない

##リモートから情報を取得してマージする(pull)
```
git pull <リモート名> <ブランチ名>
```
##ブランチの新規追加(branch)
```
git branch <ブランチ名>
```
##ブランチの表示
```
git branch
```
##ブランチの切り替え(checkout)
```
git checkout <既存ブランチ名>

//ブランチを新規作成して切り替える
git checkout -b <新ブランチ名>
```
##変更履歴をマージする(merge)
```
git merge <ブランチ名>
```
- mainのブランチにいるときに行う

##ブランチの変更
```
git branch -m <ブランチ名>
```
##ブランチの削除
```
git branch -d <ブランチ名>

//強制削除
git branch -D <ブランチ名>
```

##リベースで履歴を整えた形で変更を統合する(rebase)
```
git rebase <ブランチ名>

//fetch + rebase
git pull --rebase
```
- githubにプッシュしたコミットをリベースするのはダメ

##タグの一覧を表示する(tag)
```
git tag
```

- タグはリリースポイントに付けておくと後から変更があったときに便利

##タグを作成する(tag)
```
git tag -a <タグ名> -m "<メッセージ>"

//軽量版
git tag <タグ名>
```
##タグのデータを表示する(show)
```
git show <タグ名>
```
##タグをリモートポジトリに送信する
```
git push <リモート名> <タグ名>

//タグを一斉に送信する
git push origin --tags
```
##作業を一次避難する(stash)
```
git stash save
```
##避難した作業の確認/一覧(stash list)
```
git stash list
```
##避難した作業を復元(stash apply)
```
//最新の作業を復元する
git stash apply

//ステージの状況を復元
git stash apply --index

//特定の作業を復元
git stash apply <スタッシュ名>
```
##避難した作業を削除(stash drop)
```
//最新の作業を削除する
git stash drop

//特定の作業を削除する
git stash drop <スタッシュ名>

//全作業を削除する
git stash clear
```
##プルリクエストの手順
```
//mainブランチを最新の状態に更新
git pull origin main

//ブランチを作成
git checkout -b <ブランチ名>

//確認
git branch

//ファイルの変更
code .

//確認
git status

//ステージに追加
git add .

//変更をコミット
git commit -m "<コミットメッセージ>"

//GitHubへプッシュ
git push origin <ブランチ名>

//ブランチに移動
git checkout main

//確認
git status


GitHub上でプルリクエストを送る
　　　　　　↓
　　　　コードレビュー
　　　　　　↓
　　プルリクエストをマージ
　　　　　　↓
　　　ブランチを削除

//最新の情報に更新
git pull origin main

//ローカルのブランチを削除
git branch -d <ブランチ名>

//確認
git branch
```
##もう少し、、ってときに
gitのチュートリアル
https://www.atlassian.com/ja/git/tutorials

GitHub Docs
https://docs.github.com/ja