検索

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 までご連絡ください。
2つの画像とAPI:製品のリクロッキングに必要なすべて2つの画像とAPI:製品のリクロッキングに必要なすべてApr 15, 2025 am 11:27 AM

最近、製品画像の色を動的に更新するソリューションを見つけました。したがって、製品の1つだけで、私たちはそれをさまざまな方法で色付けすることができます

毎週のプラットフォームニュース:サードパーティのコード、パッシブ混合コンテンツ、最も遅い接続のある国の影響毎週のプラットフォームニュース:サードパーティのコード、パッシブ混合コンテンツ、最も遅い接続のある国の影響Apr 15, 2025 am 11:19 AM

今週のラウンドアップでは、灯台はサードパーティのスクリプトに光を当て、安全なリソースが安全なサイトでブロックされ、多くの国の接続速度がブロックされます

独自の非JavaScriptベースの分析をホストするためのオプション独自の非JavaScriptベースの分析をホストするためのオプションApr 15, 2025 am 11:09 AM

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています

それはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理するそれはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理するApr 15, 2025 am 11:01 AM

ドキュメントヘッドはウェブサイトの中で最も魅力的な部分ではないかもしれませんが、それに入るものは間違いなくあなたのウェブサイトの成功にとってそれと同じくらい重要です

JavaScriptのsuper()とは何ですか?JavaScriptのsuper()とは何ですか?Apr 15, 2025 am 10:59 AM

子のクラスでsuper()?を呼び出すJavaScriptを見たときに何が起こっているのか、Super()を使用して親のコンストラクターとSuperを呼び出します。そのアクセス

さまざまな種類のネイティブJavaScriptポップアップを比較しますさまざまな種類のネイティブJavaScriptポップアップを比較しますApr 15, 2025 am 10:48 AM

JavaScriptには、ユーザーインタラクション用の特別なUIを表示するさまざまな内蔵ポップアップAPIがあります。有名:

アクセス可能なWebサイトが構築が難しいのはなぜですか?アクセス可能なWebサイトが構築が難しいのはなぜですか?Apr 15, 2025 am 10:45 AM

先日、私は多くの企業がアクセス可能なウェブサイトを作るのに苦労している理由について、フロントエンドの人々とおしゃべりをしていました。アクセス可能なWebサイトがとても難しいのはなぜですか

「隠された」属性は目に見えて弱いです「隠された」属性は目に見えて弱いですApr 15, 2025 am 10:43 AM

あなたがそれがすべきだと思うことを正確に行うHTML属性があります:

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。