私自身の理由でフォークしたいオープンソースプロジェクトがあります。現在、メインのSVNリポジトリのGitミラーがあり、これを使用できます。
Gitを使用して、元のプロジェクトからの将来の変更を独自のフォークされたリポジトリにマージする機能を維持しながら、プロジェクトをフォークするための最良の手法は何ですか?
開発にはGithubをまったく使用しないので、そこから機能を使用することは問題外です。プロジェクトはプライベートVPSでホストされます。
フォークは単なるブランチであり、メイントランクに再マージされることはありません。プロジェクトのメンテナはあなたのブランチについて知らず、元のコードベースに加えた変更に注意を払うことは決してないでしょう。したがって、メンテナが適用する元のコードの一部を変更すると、将来的にも変更が適用されるため、マージの衝突が発生する可能性があります。これは、元のコードベースからの「プル」の頻度、および変更の性質とサイズに応じて、許容できる場合とできない場合があります。
これに対処するための最良のアプローチは、これらの変更を可能な限り小さく保つためのIMHOです。たとえば、ほとんどのコードを異なるファイルに配置します。これにより、将来の変更をブランチに「プル」するたびに、マージの衝突の可能性が低くなります。
元のプロジェクトをupstream
またはvendor
(私が好む)というブランチに保持すると、元のプロジェクトへの変更から変更を分離するのに役立ちます。また、フォークの理由をREADME.md
に書き込むか、その理由でFORK.md
を作成します。その情報を保存することは、元の情報と比較して変更が小さい場合(そしてアップストリームに統合されない場合)に特に役立ちます。