ホームページ > ウェブフロントエンド > CSSチュートリアル > Rebase vs. Merge:Gitの変更の統合

Rebase vs. Merge:Gitの変更の統合

Christopher Nolan
リリース: 2025-03-18 12:09:12
オリジナル
451 人が閲覧しました

Rebase vs. Merge:Gitの変更の統合

この記事では、「Advanced Git」シリーズを継続しています。 Twitterでフォローするか、今後の記事の最新情報についてはニュースレターを購読してください!

開発者にとって効果的なGit分岐が重要です。私の以前の記事では、分岐戦略、GITの分岐モデル、分岐型、および一般的なワークフローの詳細について説明しました。コアの利点:分離ワークスペース(分岐)はバージョン制御を大幅に改善します。

この記事では、ブランチの統合に焦点を当てています。コードをメイン開発ラインに効率的に統合します。 2つの重要な方法を調べます:マージとリベッシング。

git mergegit rebase両方が同じ問題を解決します。あるブランチから別のブランチへの変更を統合します。ただし、それらのアプローチは大きく異なります。最初にマージを調べてみましょう。

高度なGitシリーズ:

  • パート1:理想的なgitコミットを作成します
  • パート2: Git分岐戦略の最適化
  • パート3:プルリクエストとのコラボレーションの合理化
  • パート4:競合を効果的に解決します
  • パート5: Rebase vs. Merge(あなたはここにいます!
  • パート6:インタラクティブなリベースのマスター
  • パート7: GitでCherry-Pickingがコミットします
  • パート8:失われたコミットを回復するためにリフェログを利用します

Gitの理解

git mergeコマンドはブランチを統合します。新しいコミットでbranch-B想像してください。 branch-Aに合流する:

 <code>$ git checkout branch-A $ git merge branch-B</code>
ログイン後にコピー

これにより、 branch-Aに新しいマージコミットが作成され、両方のブランチ履歴が接続されます。 GITは3つの重要なコミットを識別します。

  • 共通の祖先:両方の分岐が分岐する前に同一のコードを共有するポイント。
  • 支店のエンドポイント:現在の状態を表す各ブランチの最新のコミットメント。

Gitはこれらのコミットを組み合わせて統合を達成します。単純化されたシナリオ( branch-Aに分岐以来コミットしていない場合)は、「高速」マージになります。これは、 branch-Bのコミットメントを直接効率的に追加します。

ただし、ほとんどの実際のシナリオでは、両方のブランチが独立して進化しています。 GITは、開発者が作成したコミットとは異なり、変更を組み合わせるためにマージのコミットを作成します。この自動マージを理解するには、完全な分岐履歴を分析する必要があります。

人間vs.マージコミット

開発者が作成したコミットは、関連する変更と有益なメッセージが含まれており、慎重に構成されています。逆に、コミットは自動的に枝を接続しますが、必ずしも意味的に一貫した一連の変更を表すわけではありません。

リベッシングとの統合

Rebasingは、マージに代わるものを提供します。それは本質的に「より良い」ものではなく、まさに異なっています。合併だけでGitを正常に管理できます。ただし、Rebasingを理解することは貴重なオプションを提供します。

リベッシングは、自動マージコミットを回避し、線形プロジェクトの履歴を作成し、ブランチの発散トレースを排除します。

Rebasing:ステップバイステップガイド

branch-Bbranch-Aにリベースしましょう:

 <code>$ git checkout branch-A $ git rebase branch-B</code>
ログイン後にコピー

プロセスには3つのステップが含まれます。

  1. 一時的にコミットの削除:共通の祖先が一時的に保管された後、 branch-Aでコミット。
  2. branch-Bのコミット: branch-Bのコミットを適用して、両方のブランチを一時的に整列させます。
  3. branch-Aのコミットの再退任:一時的に保存されたbranch-A Commitsは、 branch-Bのコミットの上に再適用され、線形履歴が生まれます。

結果:合成された合理化された歴史がコミットします。

Rebasingの潜在的な落とし穴

重要なことに、再び書き直しコミット履歴。コンテンツは同じままですが、コミットの親は変化し、新しいSHA-1ハッシュを生成します。

これは未発表のコミットには受け入れられます。ただし、公開されたコミットの再退任は危険であり、元のコミットに基づいて仕事をしている協力者を混乱させる可能性があります。

ゴールデンルール:公共の枝を回避しないでください!共有ブランチに統合する前に、ローカルで履歴を使用して歴史をクリーンアップします。

統合戦略:マージとリベース

マージとリベッシングはどちらも貴重なツールです。マージすると、歴史は非破壊的に保存されます。リベッシングは歴史を合理化しますが、公開されたコミットに関しては注意が必要です。

Gitツールについてのより深い洞察を得るために、無料の「Advanced Git Kit」を調べてください。

幸せな合併とリベッシング!次の「Advanced Git」の分割払いでお会いしましょう!

高度なGitシリーズ:

  • パート1:理想的なgitコミットを作成します
  • パート2: Git分岐戦略の最適化
  • パート3:プルリクエストとのコラボレーションの合理化
  • パート4:競合を効果的に解決します
  • パート5: Rebase vs. Merge(あなたはここにいます!
  • パート6:インタラクティブなリベースのマスター
  • パート7: GitでCherry-Pickingがコミットします
  • パート8:失われたコミットを回復するためにリフェログを利用します

以上がRebase vs. Merge:Gitの変更の統合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート