##自分のcommitをpull requestするまで
git pull #ローカルリポジトリを最新化
git checkout -b <branchName> #ブランチの作成と移動
#ファイルを編集
git status #編集したファイルを確認
git add . #"."はカレントディレクトリ以下のファイルを全てadd
#git add -p ファイル名 #改変範囲が多い場合はpオプションでブロック単位でステージング
git commit -v
git push -u origin <newRemoteBranchName>
#GUIでファイル差分をもう一度確認してからプルリクエスト
コミットの差分を確認したい
git diff #差分を確認
git diff --word-diff-regex="\w+" #文字単位での差分を確認
##リモートのBranchをローカルにcheck outする
git checkout -b <newLocalBranchName> <remoteBranchName>
##間違えてaddした
git status #addしたファイルを確認
git reset HEAD <fileName>
##間違えてcommitした
###commitを取り消す
####ファイルの変更を取り消す
git status #commitを確認
git reset --hard HEAD^
####ファイルの変更を取り消さない
git status #commitを確認
git reset --soft HEAD^
###コミットを上書きする
git status #commitを確認
#ファイルを編集
git add <filename>
git commit --amend #push済みのcommitには実施しない
##間違えてpushした
###自分しか作業しないBranchの場合
git reset --hard HEAD^
git push -f #commitを強制的に上書きするので、他の人も作業している場合commit履歴がバグる可能性があるので実施しない
###他の人もいるBranchの場合
git log #commit idを確認
git revert <commitId> #打ち消しcommitを作成
##pull requestが競合した
git checkout <yourWorkingBranchName> #作業中のBranchに移動
git pull #ローカルリポジトリの最新化
git rebase master #マスターブランチの最新commitに、作業ブランチの派生commitを植え替え
git status #競合状況を確認
#ファイルを編集
git add <fixedFileName> #競合ファイルを編集
git rebase --continue #rebaseを進める。コマンドの指示に従い、addとrebaseを繰り返す
git push #remoteにpushする
##Branchで作業中に別のBranchでの作業を頼まれた
git stash save <yourComment> #変更内容を一時保存
git stash list #保存されたか確認
git checkout <otherBranchName> #別のBranchに移動
#別のブランチでの作業完了
git checkout <originalBranchName> #元のBranchに戻る
git stash pop #変更内容を戻す
##コミットを整理したい(上級者向け)
git rebase -i #表示される画面をよく読んでから使いましょう
###新人向けチートシート