git rebase 是不是就是跟 merge master 到你的 branch 产生代码的效果一样的, 不考虑 history log 等其他的因素
履歴ログは考慮しないと言っているので、これ以上言うことはありません…
実際には、リベースには方向の制約はありません。マスターをブランチにリベースしたり、その逆に任意のブランチをリベースしたりすることができます。
本質的に、Merge は 2 つのツリーの履歴レコードの差異を無視し、Merge を実行する時点でのみ差異をマージします。一方、Rebase は 2 つのツリーの履歴レコードの差異を整理してからマージします。
視覚化できる思い出:
たとえば、マスターからブランチを分離し、それに基づいていくつかのコミットを作成しました。この時点で、マスター上には他の人による新しいコミットもあります。新しいブランチで master をマージすると、新しいコミットがブランチに表示され、変更と master の変更の組み合わせが記録されます。 2本の線が1本に統合されたようなものです。リベースすると、デタッチした時点から開始して、マスター上の新しいコミットが最初に設定され、次に自分のコミットが更新の上に書き換えられます。したがって、コンテンツはまだマージされていますが、履歴は連続しているものと見なされます。
履歴ログは考慮しないと言っているので、これ以上言うことはありません…
実際には、リベースには方向の制約はありません。マスターをブランチにリベースしたり、その逆に任意のブランチをリベースしたりすることができます。
本質的に、Merge は 2 つのツリーの履歴レコードの差異を無視し、Merge を実行する時点でのみ差異をマージします。一方、Rebase は 2 つのツリーの履歴レコードの差異を整理してからマージします。
視覚化できる思い出:
たとえば、マスターからブランチを分離し、それに基づいていくつかのコミットを作成しました。この時点で、マスター上には他の人による新しいコミットもあります。新しいブランチで master をマージすると、新しいコミットがブランチに表示され、変更と master の変更の組み合わせが記録されます。 2本の線が1本に統合されたようなものです。リベースすると、デタッチした時点から開始して、マスター上の新しいコミットが最初に設定され、次に自分のコミットが更新の上に書き換えられます。したがって、コンテンツはまだマージされていますが、履歴は連続しているものと見なされます。