##git リベースで履歴を整えた形で変更を統合する
*注意:Githubにプッシュしたコミットをリベースできない!!!
git push -f で強制的にプッシュできるが履歴が壊れるので、【絶対NG!!!!】
$ git rebase ブランチ名
##git プルのマージ型
$ git pull リモート名 ブランチ名
$ git pull origin master
##git プルのリベース型
$ git pull --rebase リモート名 ブランチ名
$ git pull --rebase origin master
・デフォルトでリベース型にするには
$ git config --global pull.rebase true
##git 直前のコミットをやり直す
*GithubにプッシュしたcommitはNG!!
$ git commit --amend
##git 複数のコミットをやり直す
$ git rebase -i コミットID //-i interactiveの略
$ git rebase -i HEAD~3 //直前のコミット3つをやり直す!何個前のコミットか数字を置く
・下記の3つのコミット情報が出る!
pick gh21f6d ヘッダー修正
pick 93054e ファイル追加
pick 84gha0d READNE修正
・修正したいコミットにeditと修正を行う!その後ファイルの保存をする!
pick gh21f6d ヘッダー修正
pick 93054e ファイル追加
edit 84gha0d READNE修正
・git commit --amendを行うとコミット名を変更できる!
edit 84gha0d READNE修正 //editに変更したコミット
・修正が終われば
$ git rebase --continue
$ git logで修正されたか確認すること
##git コミットを並び替える
$ git rebase -i HEAD~数字
下記のコミットの順番を変更する際は、書き換えればいいだけ
pick gh21f6d ヘッダー修正
pick 93054e ファイル追加
pick 84gha0d READNE修正
↓
pick 93054e ファイル追加
pick 84gha0d READNE修正
pick gh21f6d ヘッダー修正 その後ファイルを保存で変更される!
##git 複数のコミットを1つにまとめる
$ git rebase -i HEAD~数字
・まとめたいコミットのpickからsquashに変更する!
pick gh21f6d ヘッダー修正
squash 93054e ファイル追加
squash 84gha0d READNE修正
↓
pick gh21f6d ヘッダー修正 全てのコミットがまとめられる!!!
##git コミットの分割を行う!
$ git rebase -i HEAD~数字
・分割したいコミットにeditと記述する!!
pick gh21f6d ヘッダー修正
pick 93054e ファイル追加
edit 84gha0d READNE修正
・コミットがリセットする!!
$ git reset HEAD^
そこから現状の確認で、git statasで確認する!
そこから git add ファイル名 を行っていき、コミットしていく!!!
最後に
$ git rebase --continue
##git タグの一覧表示
$ git tag
$ git tag -l 日付 //日付の指定も可能
##git タグを作成する(注釈付きタグ)
$ git tag -a タグ名 -m "メッセージ"
##git タグを作成する(軽量版タグ)
$ git tag タグ名
##git タグのデータを表示する
$ git show タグ名 もしくは 日付
##git タグをリモートリポジトリに送信する
$git push リモート名 タグ名
・タグを一斉送信する
$ git push origin --tags
##git 作業を一時避難する
$ git stash
$ git stash save
##git 避難した作業を確認する
$ git stash list //避難した一覧を表示する
##git 避難した作業を復元する
・最新の作業を復元する
$ git stash apply
・ステージの状況も復元する
$ git stash apply --index
・特定の作業を復元する
$ git stash apply スタッシュ名
$ git stash apply stash@{数字} //git stash listで確認すること
##git 避難した作用を削除する
・最新の作業を削除する
$ git stash drop
・特定の作業を削除する
$ git stash drop スタッシュ名
$ git stash drop stash@{数字}
・全作業を削除する
$ git stash clear