##はじめに
これから実務に入るにあたって、コマンドを調べる際に効率的に調べられるようにまとめました。
##Gitでよく使うコマンド
###git clone
Gitリポジトリのコピー
ファイルと.gitディレクトリの両方がコピーされる。
$ git clone <リポジトリ名>
###git add
変更をステージに追加する
※ステージは一部のファイルを変更するために存在する
$ git add <ファイル名>
$ git add <ディレクトリ名>
$ git add .
###git commit
変更を記録する(コミット)
#####<わかりやすいコミットメッセージ>
1行目:変更内容の要約
2行目:空行
3行目:変更した理由
$ git commit
$ git commit -m "<メッセージ>" //エディタ立ち上がらずに記録
$ git commit -v //変更内容を確認できる
###git status
現在の変更状況を確認
①ワークツリーとステージの間で変更されたファイル
②ステージとリポジトリの間で変更されたファイル
$ git status
###git diff
変更差分を確認する
# git addする前の変更分
$ git diff
$ git diff <ファイル名>
# git addした後の変更分
git diff --staged
###git log
変更履歴を確認する
$ git log
#1行で表示する
$ git log --oneline
#ファイルの変更差分を表示する
$ git log -p index.html
#表示するコミット数を制限する
$ git log -n <コミット数>
###git rm
ファイルの削除を記録する
# ファイルごと削除
$ git rm <ファイル名> //ワークツリーとリポジトリのファイルの削除
$ git rm -r <ディレクトリ名>
#ファイルを残したいとき
$ git rm --cached <ファイル名> //リポジトリのファイルのみ削除
git mv
ファイルの移動を記録する
$ git mv <旧ファイル><新ファイル>
# 以下のコマンドと同じ
$ mv <旧ファイル><新ファイル>
$ git rm <旧ファイル>
$ git add <新ファイル>
###git remote add
リモートリポジトリ(GitHub)を新規追加する
#originというショートカットでurlのリモートリポジトリを登録
$ git remote add origin <GitHubのURL>
###git push
リモートリポジトリ(GitHub)へ送信する
$ git push <ブランチ名><リモート名>
$ git push origin master
###git config --global alias
コマンドにエイリアスをつける
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.br branch
$ git config --global alias.co checkout
###git checkout
ファイルへの変更を取り消す
$ git checkout -- <ファイル名>
$ git checkout -- <ディレクトリ名>
# 全変更を取り消す
$ git checkout -- .
###git reset HEAD
ステージした変更を取り消す
※ワークツリーのファイルには影響しない(削除されない)
$ git reset HEAD <ファイル名>
$ git reset HEAD <ディレクトリ名>
#全変更を取り消す
$ git reset HEAD .
###git commit --amend
直前のコミットをやり直す
$ git commit --amend
###git remote
リモートの表示
$ git remote
#対応するリモートの表示
$ git remote -v
###git remote add
リモートリポジトリを新規追加する
※リモートリポジトリは複数登録可
$ git remote add <リモート名> <リモートURL>
###git fetch
リモートから情報を取得
リモートリポジトリからローカルリポジトリに情報を取ってくる
remotes/リモート/ブランチに保存
$ git fetch <リモート名>
$ git fetch origin
###git pull
リモートから情報を取得してマージする
ワークツリーまで一度に反映する
$ git pull <リモート名> <ブランチ名>
$ git pull origin master
#上記コマンドは省略可能
$ git pull
#下記コマンドと同じ
$ git fetch origin master
$ git merge origin/master
###git remote show
リモートの詳細情報を表示する
$ git remote show <リモート名>
$ git remote show origin
###git remote rename
リモートを変更、削除する
#名前の変更
$ git remote rename <旧リモート名> <新リモート名>
$ git remote rename tutorial new_tutorial
#削除する
$ git remote rm <リモート名>
$ git remote rm new_tutorial
###git branch
ブランチの一覧を表示
ブランチを新規追加
#ブランチの一覧表示
$ git branch
$ git branch -a //全てのブランチの表示
#ブランチを新規追加
$ git branch <ブランチ名>
$ git branch feature
###git checkout
ブランチを切り替える
$ git checkout <既存ブランチ名>
$ git checkout feature
#ブランチを新規作成して切り替える
$ git checkout -b <新ブランチ名>
###git merge
変更履歴をマージ
$ git merge <ブランチ名>
$ git merge <リモート名/ブランチ名>
$ git merge origin/master
###git branch
ブランチを変更、削除する
#変更する
$ git branch -m <ブランチ名>
$ git branch -m new_branch
#削除する
$ git branch -d <ブランチ名>
$ git branch -d feature
#強制削除
$ git branch -D <ブランチ名>
###git rebase
リベースで履歴を整えた形で変更を統合する
GitHubにプッシュしたコミットをリベースするのはNG
git push -fはNG
$ git rebase <ブランチ名>
###git pull --rebase
プルのリベース型
$ git pull --rebase <リモート名> <ブランチ名>
$ git pull --rebase origin master
プルをリベース型に設定
$ git config --global pull.rebase true
#masterブランチでgit pullするときだけ
$ git config branch.master.rebase true
###git rebase -i
複数のコミットをやり直す
$ git rebase -i < コミットID>
$ git rebase -i HEAD~3
#やり直したいcommitをeditにする
edit gh21f6d ヘッダーの修正
pick 193054e ファイルの追加
pick 84gha0d READEME修正
#やり直したら実行する
$ git commit --amend
#次のコミットへ進む(リベース完了)
$ git rebase --continue
コミットを並び替える、削除する
$ git rebase -i HEAD~3
#コミットを削除する
pick 193054e ファイルの追加
pick 84gha0d READEME修正
#並び替えたい順に並び替える
pick 84gha0d READEME修正
pick 193054e ファイルの追加
#コミットをまとめる
pick gh21f6d ヘッダーの修正
squash 193054e ファイルの追加
squash 84gha0d READEME修正
#コミットの分割
pick gh21f6d ヘッダーの修正
pick 193054e ファイルの追加
edit 84gha0d READEME修正とindex修正
$ git reset HEAD^
$ git add README
$ git commit -m 'README修正'
$ git add index.html
$ git commit -m 'index.html修正'
$ git rebase --continue
###git tag
タグの作成
#注釈付きタグ
$ git tag -a [タグ名] -m "[メッセージ]"
$ git tag -a 20210730_01 -m "version 20210730_01"
#軽量版タグ
$ git tag [タグ名]
$ git tag 20210730_01
#後からタグ付けする
$ git tag [タグ名] [コミット名]
$ git tag 20210730_01 8a6cbc4
#タグのデータを表示する
$ git show [タグ名]
$ git show 20210730_01
#タグをリモートリポジトリに送信
$ git push [リモート名] [タグ名]
$ git push origin 20210730_01
#タグの一斉送信
$ git push origin --tags
###git stash
作業を一次避難する
$ git stash
$ git stash save
#避難した作業を確認
$ git stash list
#避難した作業を復元
$ git stash apply
#ステージの状況も復元
$ git stash apply --index
#特定の作業を復元
$ git stash apply [スタッシュ名]
$ git stash apply stash@{1}
#最新の作業を削除する
$ git stash drop
# 特定の作業を削除する
$ git stash drop [スタッシュ名]
$ git stash drop stash@{1}
#全作業を削除する
$ git stash clear