毎回、あれどうやったっけなというのがGitのRebaseです。
きちんと記事を書いて整理しようと思います。書いて覚える。昔からの私の勉強法であります。
まず、適当なリポジトリを用意します。
- mainブランチから別でfeatureブランチを作成
- featureブランチで修正して一つコミット
- mainブランチに戻り、一つコミット
これでfeatureブランチを切った時からmainブランチが進んでいるという状態が出来ます。
mainブランチから離れたままでいると競合する可能性が高くなり、後でマージするのが大変になります。
なのでrebaseして、最新のmainブランチから切られたブランチでいるようにするのです。
競合したとしてもあらかじめ競合を解決されていれば競合の解決もレビューしてもらえるので安心なわけです。
リベースですが、ブランチをチェックアウトした状態で、リベースしたいブランチ名を右クリックとかいうとよくわからないですね。
基本的にfeatureブランチをチェックアウトした状態で、main/developブランチを右クリックして現在の修正を〜に対してリベースするを選びます(とりあえずこれで操作に慣れれば細かいことはわかるようになる、多分)
競合を解決します。Visual Studio 2019だと楽です。
ツールはお好みで。
競合を解決したら、ファイルを右クリックして競合を解決するを選びます。
もし、競合がよくわからなくなってリベースをやめたくなったら、リベースを中断を選択します。
競合を解決したらリベースを続けるを選択します。
そして、プッシュします。正直、この状態もよくわからないので自分、大丈夫かと思うのですが、大丈夫です。
で失敗するんですよ、これが。
そこでターミナルから
git push origin ブランチ名 --force-with-lease
と強制プッシュします。
これで解決します。
おまけ〜Visual Studioの場合