リベースとは?
マージではなく、コミット履歴を移動したり修正、削除したりすること
ただ、マージと似たような処理をすることになる
私も完全に理解はしていないので下のようなイメージで考えています。
(間違っていたらすみません)
develop2の開発を進めていて、develop2の情報を保持したまま、develop1の情報を取り込みたい!となった時にリベースを使うと認識しています。
リベースする前はC5,C6となっていたコミットIDはリベースするとC5',C6'と変更される用です。
いろいろ理由はあるようです。↓
https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E6%A9%9F%E8%83%BD-%E3%83%AA%E3%83%99%E3%83%BC%E3%82%B9
VSCodeで試してみる
実際にやってみたいと思います。
1. develop1、develop2を作成
> git branch
*develop1
develop2
test.txtは共通のファイルで中身は
aaaaaaaa
bbbbbbbb
cccccccc
develop1
aaaaaaaa
bbbbbbbb
cccccccc
develop2
となっています。
そのほかにdevelop1にはtestDevelop1.txt
、develop2にはtestdevelop2.txt
を加えています。
3. develop2ブランチにリベースする
vscodeでリベースしていきます。
develop2ブランチに移動して、「・・・」からブランチ、ブランチのリベースを選択します。
test.txtでコンフリクトが起きますが、解決してリベースが終了すると、
develop2ブランチにtestDevelop1.txtが取り込まれました。
マージを繰り返すより、リベースをしていった方が、遡る際に手間が少なくなるようなので適切な場面で使用していきたいですね