git で rebaseをするときのコマンドフロー


ネットで検索しても中々見つけられなかったので、
git rebaseのコマンドフローを書き記しておきます
GUI使わずコマンドでgitを扱う方は参考になるかもしれないです

ちなみに環境ですが、
mac & VSCodeでターミナルを開いて行っています

その前に

変な空白が入ってたりすると、
Whitespace云々でgit rebase中に怒られてしまうので、
VSCodeをお使いの方はsettings.jsonに下記設定を追加しておいてください!

"files.trimTrailingWhitespace": true

Here We Go !!

ではここから作業フローになります。
開発ブランチ名 : develop
自分の作業ブランチ名 : feature-branch
の場合を想定して進めていきます

$はbashで進めた時を想定してつけているので、各々の環境で適宜脳内変換してください〜!

// 作業をコミットしておく
$ git add [作業ファイル]
$ git commit -m "作業メッセージ"

// 開発ブランチへ移動
$ git checkout develop

// 最新のもの必ずとってきてください!
$ git pull origin develop

// 自分の作業ブランチに戻ってから開発ブランチをrebase
$ git checkout feature-branch
$ git rebase develop

// ⭐️rebase中にconflictしなかった場合
// おめでとうございます🎉 pushしてしまいましょう
// 一回でもpushした場合
$ git push --force-with-lease origin feature-branch
//もしくは
//※今回が最初のpushだったら--forceはなくてもいけると思います
$ git push origin feature-branch

// ⭐️rebase中にconflictしてしまった場合
// とりあえず確認してファイルを治しましょう
$ git status
// commitはせず、add のみ
$ git add [conflictしてるファイル名]
// 次のcommitに行きます。そこでもconflictしたら↑と同じことしてください
$ git rebase --continue

全て終わったら、[⭐️rebase中にconflictしなかった場合]に飛んでください

ちなみにrebase自体やり直したいときは、自分の作業ブランチで

$ git rebase --abort

rebase後に間違って自分の作業ブランチをpullしてしまった場合は

$ git merge --abort 

でなかったことにできるので安心してくださいね