TIL 023 | git rebase


rebase ?


Gitから1つのブランチを別のブランチにマージする方法はMergeであり,もう1つはRebaseである.

実験(c 4)とmaster(c 3)を統合する最も簡単な方法はgit merge masterである.2つのブランチの最終コミット(c 3、c 4)と汎用祖先(c 2)の3つのマージを使用して、新しいコミットを生成します.

c 3では,変更された事項をPatchとし,c 4に適用する方式をRebaseと呼ぶ.このコマンドを使用して、1つのブランチの変更を別のブランチに適用できます.
すなわち,別のbasetipにコミットを再適用する.
また、複数のコミットを1つにまとめることもできます.
作業中は、他のブランチに移動する必要がある場合がありますが、一時的にコミットして一時的に保存します.そのままプッシュすると、コミットログが非常に乱雑になるため、これらのコミットを統合するときにgit rebaseも使用されます.

USE:commit historyのマージ方法

  • featureブランチでは、次のコマンドを使用します.
  • git rebase -i main
    -iオプションを追加すると、インタラクティブモードに変換できます.
    mainを基準に再baseを行います.または、n個のマージするコミットに再設定する前に.

  • 最初のコミット(firstcommit)をpickとし、残りはs(squash)とする.

  • 提出情報を整理する.

  • コミット・ログを確認した後、マージが正常であればブランチにプッシュするか、次の操作を続行します.
  • 4-1. 以前にリモートストレージにプッシュした場合は、-fで強制的にプッシュします.△これは、私の提出内容で上書きされるリスクをもたらすため、慎重に使用する必要があります.
    複数のコミットを同時に行うことはリスク負担になるため、コミットログが3~4個積まれたときに再コミットすることは精神的健康によい.

    USE:マスターブランチのマージ

  • プライマリ・ブランチからリモート・ストレージ・プライマリにマージされたコンテンツを取得します.
  • git pull origin main
  • mainとマージするブランチに移動したら、次のコマンドを使用します.
  • git rebase -i main
  • 競合が発生した場合は、変更後に次のコマンドを使用します.
  • git add .
    git rebase --continue
  • コミットログを確認した後、マージが正常であればブランチにプッシュするか、次の操作を続行します.
  • 4-1. 以前にリモートストレージにプッシュした場合は、-fで強制的にプッシュします.△これは、私の提出内容で上書きされるリスクをもたらすため、慎重に使用する必要があります.
    Git-Rebase
    Gitツール-修飾履歴