ベンダー ブランチを確認します。
しかし、独自のバージョン管理システムでサードパーティ コードへのカスタム変更を維持したい場合があります。[...] これらの変更には、新しい機能やバグ修正が含まれる場合があります [...]。
今、あなたは興味深い状況に直面しています。プロジェクトは、パッチ ファイルや完全な代替バージョンのファイルやディレクトリを使用するなど、バラバラな方法でサード パーティ データへのカスタム変更を格納できます。しかし、これらはすぐにメンテナンスの頭痛の種になり、カスタム変更をサードパーティ コードに適用するための何らかのメカニズムが必要になり、追跡するサードパーティ コードの連続するバージョンごとにそれらの変更を再生成する必要があります。
ベンダー ブランチは基本的に、ソース コードの変更されていないバージョンを含むディレクトリ (A と呼びます) です。このディレクトリをプロジェクト (または他の場所。これを X と呼びます) に分岐し、パスをこの分岐に適用します。ベンダーがコンポーネントを更新した場合、それをディレクトリ (B と呼びます) にインポートします。独自の変更したライブラリを更新するには、B と A の間でマージを行い、これを X に適用します。このようにして、変更を保持するだけでなく、ベンダーのソフトウェア バージョン間のすべての変更も取得します。
マージ コマンドで --ignore-ancestry オプションを使用することに注意してください。そうしないと、変更されたファイルが置き換えられ、差分が適用されません。