研修でCRUDアプリを作成してレビューして完成させるまでのgitのコマンドを流れに沿ってまとめました。(備忘録用)
まずCRUDアプリを作成するまでの流れを簡単に
- githubでレポジトリ作成
- ローカルでgit cloneしてディレクトリ作成
- rails new で新規作成
#基本的な流れ
1.ブランチを切って作業する
2.作業完了後ファイルの変更箇所をリモートブランチにプッシュする
3.PRを作成してレビューをしてもら
4.修正依頼 or LGTM
5.修正依頼の場合、指摘箇所を修正してプッシュ →2へ
6.LGTMの場合githubでマージしてその内容をmasterへpullする
1.ブランチを切って作業する
git branch -b 新ブランチ名 master
2.作業完了後ファイルの変更箇所をリモートブランチにプッシュする
git add .
git commit -m 'メッセージ'
git push origin ブランチ名
3.PRを作成してレビューをしてもら
4.修正依頼 or LGTM
5.修正依頼の場合、指摘箇所を修正してプッシュ →2の内容とほぼ同じ
6.LGTMの場合githubでマージしてその内容をmasterへpullする
# masterブランチへ移動
git checkout master
git pull origin master
その後にまたブランチを切って次の作業へ(1~6の繰り返し)
ここまでが基本的な流れ
#ケース1:レビューしてもらっている間に次の作業に取り掛かる
git branch -b 新ブランチ名 orgin/現作業ブランチ名
新ブランチで作業中に前の作業ブランチでLGTMをもらいmasterにmergeされた内容を取り込む
#変更を取り込む
git rebase master
コンフリクトが起きなければそのままでOK!
コンフリクトが起きたら解決(私の場合はVScodeで解決)してcontinue
# コンフリクト解決して
git add .
git rebase --continue
# 下記コマンドでrebaseを取り消すこともできる
git rebase --abort
#ケース2: pushしてPR作成後に微修正箇所が見つかった
#softオプションをつけてcommitの取り消し
git reset --soft
修正完了後
git add .
git commit -m 'コミットメッセージ'
# すでにリモートにはコミットが存在しローカル環境とのコミットの整合性が取れないので
# force push で強制的にpushする -fは要注意
git push -f origin ブランチ名
#ケース3: リモートブランチのコミットを取り込む
#1ブランチから新たに#2ブランチを切って作業中に#1のレビューで修正がありそのコミットを#2のブランチに取り込みたい
git pull --rebase origin #1
#ケース4: コミットせずにブランチを切り替える
#2で作業中に#1のブランチの修正依頼があり#2の変更ファイルをコミットせずにブランチを切り替える
変更をコミットせずに退避
git stash save
退避する際に新規ファイルが存在する場合
git stash -u
#1にブランチ切り替え
git checkout #1
#1の修正 add commit push完了 #2ブランチに戻る
git checkout #2
退避した内容を戻す
git stash pop スタッシュ名
他にもgit statusやgit logなどもありましたが今回はCRUDアプリ作成に直接関係しなかったので省きました。
以上が私がCRUDアプリ作成時に使ったgitコマンドです。
最後までご覧いただきありがとうございます。