#Gitとは
Gitはバージョン管理システム。(バージョンとは、コミットした時点のファイルやフォルダをセーブしたもの。)
#メリット
Gitを使うことで、開発しているときに、自分が何を変更したかわからなくなったり、ファイルを消したりしてしまったときに、前回のバージョンへ戻ることができることである。また、GithubやBitbucketといったリモートリポジトリと組み合わせて使うことで、チーム開発に置いて非常に効率を上げることができる。
#コマンド集
##基本コマンド
・ローカルリポジトリの作成(projectのrootで行う)
$ git init
・変更をステージに追加
$ git add .
$ git add <ファイル名>
・変更をローカルリポジトリに追加
$ git commit -m "commit message"
・ローカルに新規ブランチを作成
$ git branch <新規ブランチ名>
・ブランチ名を変更
$ git branch -m <ブランチ名>
・ブランチの切り替え
$ git checkout <ブランチ名>
・新規ブランチを作成後、移動
$ git checkout -b <新規ブランチ名>
・リモートのブランチをローカルにコピー(ローカルに作成するリポジトリ名はリモートと異なっていてもOK)
$ git checkout -b <新規ブランチ名> <origin/リモートリポジトリ名>
・ブランチの削除
$ git branch -d <ブランチ名>
・ブランチの確認
$ git branch // ローカルのブランチのみ参照
$ git branch -a // リモートのブランチも参照
・ローカルで作成したブランチをリモートに登録
$ git push -u origin <ブランチ名>
・現在のGitの状態を確認
$ git status
・変更差分を確認
$ git diff
・変更履歴を確認
$ git log
$ git log --oneline
##変更の取り消し
・作業中ファイルの変更取り消し
$ git checkout -- .
・ステージしたファイルの変更取り消し
$ git reset HEAD .
・直前のコミットの取り消し
$ git commit --amend
$ git commit reset --head HEAD^ // --hard: 現在のワークツリーも削除
$ git commit reset --soft HEAD^ // --soft: 現在のワークツリーはそのまま
##リモートリポジトリとのやりとり
・設定しているリモートリポジトリを表示
$ git remote
・リモート名を登録(これ以降URLの代わりにリモート名を使用できる)
$ git remote add <新規リモート名> <リモートURL>
・リモート名を変更
$ git remote rename <旧リモート名> <新規リモート名>
・リモート名を削除
$ git remote rm <リモート名>
・リモートリポジトリへ変更を送信
$ git push <リモート名> <ブランチ名>
・リモートリポジトリからローカルリポジトリに情報を取得
$ git fetch <リモート名>
・ローカルリポジトリからコンピュータ上に情報をコピー
$ git merge <リモート名/ブランチ名>
・リモートリポジトリからコンピュータ上に情報をコピー(fetch + merge)
$ git pull <リモート名> <ブランチ名>
・リモートリポジトリからコンピュータ上にコピー(init + pull)
$ git clone
##作業中ファイルの一時避難
・作業中ファイルを一時避難
$ git stash
・一時避難中ファイルを表示
$ git stash list
・一時避難中ファイルを復元
$ git stash apply --index
・避難したファイルの削除
$ git stash drop --index
##その他
・タグの一覧表示
$ git tag
・タグの作成
$ git tag -a [タグ名] -m "[メッセージ]"
・タグをリモートリポジトリに送信
$ git push [リモート名] [タグ名]