git mergeのイメージをTortoise Gitのログ画面からイメージする。
mainブランチからhogeブランチを生やして何か変更加える。※コンフリクトが発生しないように
mainブランチでも何か変更を加える。※コンフリクトが発生しないように
その時のイメージ。
この状態からhogeブランチをmainブランチにmergeする。
git merge hoge
これすると、以下のようにhogeブランチがmergeされる。
これがmerge。
ちなみにこのmergeを取り消すには「git reset --hard origin/main」で取り消せます。
ローカルなんでresetで取り消す。
では戻ったところでrebaseコマンドしてみる。これは日本語で言うと「付け替え」といった感じ。
git checkout hoge
この状態で、rebaseコマンド実行。
git rebase main
hogeブランチがmainの先頭に付け替えられています。
この状態でhogeを強制的にpushする。(-fオプション)
git push -f origin hoge
そうするとログが以下のようになる。コミット履歴がきれいに1本になった。
ああ、ムズイ。