git rebaseを理解するためにgit mergeを理解しておく

git mergeのイメージをTortoise Gitのログ画面からイメージする。

 

mainブランチからhogeブランチを生やして何か変更加える。※コンフリクトが発生しないように

 

mainブランチでも何か変更を加える。※コンフリクトが発生しないように

 

その時のイメージ。

 

 

この状態からhogeブランチをmainブランチにmergeする。

 

git merge hoge

 

これすると、以下のようにhogeブランチがmergeされる。

 

 

これがmerge。

 

ちなみにこのmergeを取り消すには「git reset --hard origin/main」で取り消せます。

 

ローカルなんでresetで取り消す。

 

 

では戻ったところでrebaseコマンドしてみる。これは日本語で言うと「付け替え」といった感じ。

ブランチをhogeにする。「hoge」が赤くなります。

 

git checkout hoge

 

 

この状態で、rebaseコマンド実行。

 

git rebase main

 

 

hogeブランチがmainの先頭に付け替えられています。

 

この状態でhogeを強制的にpushする。(-fオプション)

 

git push -f origin hoge

 

そうするとログが以下のようになる。コミット履歴がきれいに1本になった。

 

 

ああ、ムズイ。